react native-ios中未调用关闭时的web套接字事件
在我们的react原生应用程序中,我们使用web套接字,有时会出现异常关闭(websocket:close 1006(异常关闭):意外的EOF) onclose/onerror事件不会立即调用,而是在20-60分钟后调用(仅在ios上)。请注意,此问题仅在后台出现 这会导致我们的应用程序不知道连接已关闭,并且不会启动新连接 我们曾尝试使用wireshark收听网络,但问题只是偶尔出现,在过去的24小时内,我们没有成功捕捉到它 我们怎样才能发现这样的事件 我们的守则:react native-ios中未调用关闭时的web套接字事件,ios,react-native,websocket,Ios,React Native,Websocket,在我们的react原生应用程序中,我们使用web套接字,有时会出现异常关闭(websocket:close 1006(异常关闭):意外的EOF) onclose/onerror事件不会立即调用,而是在20-60分钟后调用(仅在ios上)。请注意,此问题仅在后台出现 这会导致我们的应用程序不知道连接已关闭,并且不会启动新连接 我们曾尝试使用wireshark收听网络,但问题只是偶尔出现,在过去的24小时内,我们没有成功捕捉到它 我们怎样才能发现这样的事件 我们的守则: initiateConnec
initiateConnection = (url) => {
this.conn = new WebSocket(url);
this.conn.onopen = this._handleConnectionOpen;
this.conn.onerror = this._handleConnectionError;
this.conn.onclose = this._handleConnectionClose;
this.conn.onmessage = this._handleMessage;
};
_handleConnectionClose = data => {
Log.info('WS - connection closed', data.reason);
};
_handleConnectionError = data => {
Log.info('WS - connection closed', data.reason);
};
显而易见的解决方案是:1)尝试使用不同的websocket客户端库,因为这个库不能充分处理您的错误。2) 修复导致此问题的服务器上的语法错误。您的代码中可能有一个bug。我使用的是react本地客户端,其他库都使用相同的客户端。我不确定这是否是我代码中的一个bug,原因如下:1)这只是偶尔发生的,例如我运行了几天的应用程序,但没有发生;2)这只发生在ios设备上,而不是android设备上,我对它们都有相同的代码。