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();
答案 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