Socket.io-client: 无法连接和重新连接本机反应

创建于 2018-03-04  ·  13评论  ·  资料来源: socketio/socket.io-client

我使用这个库一年了,一切都很好。
我开始使用 RN 0.45 和 0.48 ,然后是 0.53.0。 一切都很完美。

直到我升级以响应本机 0.53.3,并且出现此问题。
这是我得到的错误
{"type":"TransportError","description":{"line":"76","collumn":"7944","sourceURL":"index.android.bundle"}}
有时我会“超时”

我没有更改任何代码,我没有更改任何依赖项。
我刚刚做了什么:

  1. 删除我的 node_modules 文件夹
  2. 在 package.json 中,我更改了 RN 并响应版本号。
  3. 我运行“NPM安装”

我认为这可能是 React Native 的问题,所以我回滚到我使用的预览版本 0.53.0。 但是这个问题仍然存在。 我再次回滚到 0.48,问题仍然存在。 等等。

我使用 socket.io-client 2.0.3(我尝试过 2.0.4 但没有帮助)

  • [x] 报告错误
  • [ ] 请求一个功能

设置

  • 操作系统:Windows 10 64位
  • 浏览器:React Native
  • socket.io 版本:2.0.3

我不知道发生了什么。
希望有人会帮忙。 谢谢

最有用的评论

我在将 iOS 上的 websocket (socket.io-client, trnasport:['websocket']) 与网络服务器连接时遇到问题。
有趣的是,当我在设备上打开“Debug JS Remotely”时,它会起作用。
这可能是 iOS 上的 react-native 版本的问题。 只是好奇是否有人面临同样的问题。

所有13条评论

+1

我通过添加 ' transports': ['websocket'],选项解决了这个问题

  this.socket = openSocket(socketUrl,{
          'reconnection': true,
          'reconnectionDelay': 500,
      'reconnectionAttempts': Infinity, 
      'transports': ['websocket'],            
      });

但该选项不是必需的,对吗?
所以我保持这个问题开放,因为当我省略那个选项时它会中断。

在我向服务器添加 express 并添加了一些路由后,我确实遇到了这个问题
当我添加
'传输':['websocket'],
它工作正常,但一段时间后断开连接
PS:当我使用不在后台或其他东西中的应用程序时,它会断开连接。

你能提供一种重现的方法吗? (我尝试开玩笑但没有运气:https://github.com/darrachequesne/jest/commits/test/socket.io)

将传输设置为 websocket 也解决了我的问题,但当然关闭了不幸的 http 轮询。 重现步骤:

  1. 安装插座。 [email protected]在react native项目中,添加代码新建socket io连接,运行android模拟器
  2. 确保节点服务器正在运行[email protected]并启用调试日志记录
    预期:建立连接(ios模拟器成功连接)
    实际:socket io 在客户端发出 connect_error,代码为“解析错误”。 经过检查,给出的 xhr.response 是一个空字符串,socket io 将其解释为解析错误。 无法解析的消息似乎是来自套接字 io 服务器的“pong”消息。

我在 iOS 上也有同样的问题,添加选项'transports': ['websocket']的临时解决方案也对我有用。

配置:

  • socket.io 2.1.1
  • 反应16.3.2
  • 反应原生0.52.0
  • iOS 11.2

我正在尝试在我的本机 android 上连接 socket.io。 但是,它没有连接。 我尝试了一些教程,iOS 工作正常,但 Android 不是。 我已经尝试了'transports':['websocket']但仍然没有工作:( .. 任何建议或想法或示例代码?

我的后端是 Nodejs,它也使用了 socket.io。 谢谢!

我正在尝试在我的本机 android 上连接 socket.io。 但是,它没有连接。 我尝试了一些教程,iOS 工作正常,但 Android 不是。 我已经尝试了'transports':['websocket']但仍然没有工作:( .. 任何建议或想法或示例代码?

我的后端是 Nodejs,它也使用了 socket.io。 谢谢!
你有没有找到任何解决方案,我在 Android 上的 react-native 上也有同样的问题。

同样的问题

大家好,我的套接字有问题

当我检查时它显示超时

socket.on('connect_error', (err) => {
console.log('error123',err)

这是我的代码

用于反应原生端

从'socket.io-client'导入io;
var socket = io.connect('http://localhost:8888',{transsports: ['websocket'],upgrade:false});
socket.on('news', function (data) {
控制台日志(数据);
socket.emit('我的另一个事件', { my: 'data' });
});

   socket.on('connect_error', (err) => {
    console.log('error123',err)
  });

服务器端:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

服务器。听(8888);
// 警告:app.listen(80) 在这里不起作用!

app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});

io.on('connection', function (socket) {
socket.emit('news', { 你好: 'world' });
socket.on('我的另一个事件',函数(数据){
控制台日志(数据);
});
});

索引.html





第 101 章

我已经存货需要帮助

即使我在android上连接socket-io也有问题。 RN 可以作为客户端连接,但是对于 react web 应用程序来说是一样的,但对于 react 移动应用程序来说是一样的。 请提出解决方案。

尝试将 socket.io-client 降级到 1.7.2,它对我有用。

我在将 iOS 上的 websocket (socket.io-client, trnasport:['websocket']) 与网络服务器连接时遇到问题。
有趣的是,当我在设备上打开“Debug JS Remotely”时,它会起作用。
这可能是 iOS 上的 react-native 版本的问题。 只是好奇是否有人面临同样的问题。

此页面是否有帮助?
0 / 5 - 0 等级