websocket握手协议服务器收不到

现象:客户端建立连接后服务器能收到连接,但是有时候收不到握手协议包。在想用的网络下web正常,ios正常,android某些手机不正常(服务器收不到握手协议,但是有时候又能收到,此手机在其他网络下又是正常的)。
客户端代码:
conn(url) {
if (BaseDefine.GAME_PLATFORM === BaseDefine.WEB_WXGAME_PLATFORM) {
var urlList = url.split(’:’);
url = ‘wss:’ + urlList[1];
}

if (!this.client || this.client.readyState === WebSocket.CLOSED) {
  var self = this;
  var ws = new WebSocket(url);
  self.client = ws;
  ws.binaryType = "arraybuffer";
  ws.onopen = function (event) {
    if (self.useLog) {
      Global.print("====ws连接成功! name = " + self._name);
    }
    self.m_SocketSink.onopen()
  };
  ws.onmessage = function (event) {
    // Global.print("====收到:" + event.data);
    if (event.data instanceof ArrayBuffer) {
      var arr = new DataView(event.data);
      // Global.print("====收到1:" + arr.getUint16(4, true) + "," + arr.getUint16(6, true) + "数据:ArrayBuffer" + event.data.byteLength);
      self.m_SocketSink.onmessage(event)
      // Global.print("====收到:" + arr.getUint16(4, true) + "," + arr.getUint16(6, true) );
    }
    else {
      var data = JSON.parse(event.data);
      if (self.useLog) {
        // Global.print("====收到:" + data.m + "," + data.s + " 数据:" + event.data);
      }
    }
  };
  ws.onclose = function (event) {
    if (self.useLog) {
      Global.print("====ws断开连接! name = " + self._name);
    }
    self.m_SocketSink.onclose(event);
    //重新刷新IP
    DDOSDefense.Req_GetTransIP();
  };
  ws.onerror = function (event) {
    if (self.useLog) {
      Global.print("====ws连接错误! name = " + self._name);
    }
    self.m_SocketSink.onerror(event)
    //重新刷新IP
    DDOSDefense.Req_GetTransIP();
  };
} else {
  if (this.client.readyState !== WebSocket.OPEN && this.client.readyState !== WebSocket.CONNECTING) {
    var target = this;
    window.setTimeout(function () { target.conn(url); }, 1000);
  }
}

}