socket.io xhr缓慢连接后发布错误(3G移动网络)

时间:2015-06-09 12:55:14

标签: android node.js socket.io socket.io-1.0 socket.io-java-client

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

我是否知道"xhr post error"的含义是什么?为什么这个错误会出现在慢速连接中以及如何解决问题?

我正在使用socket.io-client.java版本0.4.2

2 个答案:

答案 0 :(得分: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'
 }

并使用option创建transport

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")
}

仅执行文件中所述的内容就没有任何魔力。 Read More

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

答案 1 :(得分:0)

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

试试这个:

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

<强>更新 另外,尝试将客户端库更新为5.1 +。

相关问题