当我在3G移动网络(慢速互联网连接)上测试我的真实聊天应用程序时,
Socket.io
反复断开然后重新连接。我记录了原因。
它说"xhr post error"
引发"transport error"
然后断开连接。
我是否知道"xhr post error"
的含义是什么?为什么这个错误会出现在慢速连接中以及如何解决问题?
我正在使用socket.io-client.java版本0.4.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 +。