套接字.io xhr在慢速连接(3G移动网络)上发布错误



当我在3G移动网络(网速慢)上测试我的真实聊天应用程序时,Socket.io反复断开然后重新连接。我已经记录了原因。显示"xhr post error"触发"transport error"然后断开连接

我可以知道"xhr post error"是什么意思,为什么这个错误出现在慢连接和如何解决问题吗?

我使用的是socket.io-client.java版本0.4.2

我认为你应该在你的客户端设置transports使用websockets。

试试这个:

IO.Options opts = new IO.Options();
opts.transports = new String[]{"websocket"};
mSocket = IO.socket(SOCKET_SERVER, opts);

另外,尝试将您的客户端库更新到5.1+。

首先将依赖项更新为1.0.0

implementation ('io.socket:socket.io-client:1.0.0') {
        // excluding org.json which is provided by Android
        exclude group: 'org.json', module: 'json'
 }
transport 创建option
val ioOption = IO.Options().apply {
            query = /*..*/
            reconnection = /*..*/
            transports = arrayOf("websocket")
        }

然后用option创建套接字连接

try {
      socket = IO.socket(baseUrl, ioOption)
     } catch (e: URISyntaxException) {
       e.printStackTrace()
     }
 socket.connect()

和监听EVENT_RECONNECT_ATTEMPT

socket.on(Socket.EVENT_RECONNECT_ATTEMPT) {
            ioOption.transports = arrayOf("polling", "websocket")
}

没有什么神奇的东西,只要实现文档所告诉的。阅读更多

注意:您可以更改适当的transport名称,这里我使用websocket与文档相同。

最新更新