连接时Socket.IO无限循环

时间:2017-07-04 20:22:13

标签: websocket io socket.io

Socket.IO在连接上建立一个infinte循环! 这很奇怪,直到现在才发生。我不知道出了什么问题。我尝试重建包,我从较旧的源复制一些代码并得到相同的结果......

io.on('connection', function(socket){
  console.log('someone connected << infinite loop');
});

这是一个基本的ExpressJS服务器,顶部是http。

const
port        = process.env.PORT || 3200,
app         = require('express')(),
express     = require('express'),
mysql       = require('mysql'),
bodyParser  = require('body-parser'),
path        = require('path'),
methodOverride = require('method-override'),
http        = require('http').Server(app),
io          = require('socket.io')(http);

客户端

var socket = io();

2 个答案:

答案 0 :(得分:26)

问题出在客户端,我没有在服务器端加载最新版本的socket.io。在我的package.json中,我有2.0.3,在客户端是1.2.0 ..对于有这个问题的每个人

答案 1 :(得分:0)

当我发出一个数组(在连接上)而不是一个对象时,这发生在我身上……

我通过用{}包裹数组解决了问题,所以我现在要发送一个对象...即{array} ...

例如:

myArray = [{blah:"some value"},{blah2:"some other value"}];

socket.emit('target',myArray); //results in infinite loop

socket.emit('target',{myArray}); //sends ok and not looping

不需要套接字版本在服务器和客户端上匹配...在我的情况下,客户端为c#,服务器为node.js