当前位置: 首页 > 知识库问答 >
问题:

socket.ioxhr后错误在慢连接(3G移动网络)

狄玮
2023-03-14

当我在3G移动网络(慢速互联网连接)上测试我的真实聊天应用程序时,Socket。io反复断开连接,然后重新连接。我已经记录了原因。它说的是“xhr post error”,这会引发“传输错误”,然后断开连接。

请问"xhr post错误"的含义是什么,为什么这个错误出现在慢连接中以及如何解决问题?。

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


共有2个答案

越骏俊
2023-03-14

首先将依赖关系更新为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'
 }

并使用传输创建选项

val ioOption = IO.Options().apply {
            query = /*..*/
            reconnection = /*..*/
            transports = arrayOf("websocket")
        }

然后用选项创建套接字连接

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

 socket.connect()

然后收听事件_重新连接_尝试

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

没有什么神奇的东西,只是实现文件中所说的。阅读更多

注意:您可以更改相应的传输名称,我在这里使用了websocket以与文档相同。

楚浩然
2023-03-14

我认为您应该在客户端设置传输,以使用WebSocket。

试试这个:

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

此外,请尝试将客户端库更新为5.1。

 类似资料:
  • 我正在尝试从macos上使用swift开发的应用程序连接到realm object server 当我尝试连接时,会出现“网络连接丢失”错误,但我可以从浏览器中毫无问题地打开领域服务器。。顺便说一句,这个问题最近发生了,它在几周前工作正常 这里,用户总是,错误描述是 这发生在本地服务器和一个托管在数字海洋 服务器版本1.8。3. xcode控制台日志 2018-01-15 12:46:07.077

  • 本文向大家介绍Android判断用户2G/3G/4G移动数据网络,包括了Android判断用户2G/3G/4G移动数据网络的使用技巧和注意事项,需要的朋友参考一下 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允

  • 问题内容: 我一直在玩Socket.io,node.js和WebSockets,所有这些我都可以通过wifi连接正常工作。 但是,当我通过3G连接(例如在我的iPhone上)测试支持WebSocket的应用程序时,似乎只能回退到长时间轮询了。 使用Socket.io之前,连接失败并显示“ WebSocket连接无效或未验证原点”,然后退回长时间轮询。 我不知道WebSockets是否可以在3G上工

  • 尝试启动Hive转移3.1版本,连接到一个新的MySQL RDS并得到这个错误。当使用Hive2.3.2时,它工作得很好(在一个单独的MySQL RDS实例上)。有人知道是什么引起的吗?在启动HiveMetastore进程之前,已经初始化了mysql: > echo“如果不存在转移瘤,则创建数据库;”>hive_metaxore.sql echo“使用metaxore;”>>hive_metaxo

  • 错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t

  • 我想连接到FTP目标并向其写入文件。FTP在进入PASV模式后突然关闭。FTP服务器设置本身没有问题。我不确定我能在FTP服务器上修复什么来修复这个问题。有什么想法吗?