我在socket.io中遇到一些意外行为,其中我遇到了未提示的重新连接
这是我的前端,由index.html
引用$(function(){
var socket = io.connect('https://localhost:3005', {'flash policy port':3005} );
});
这是我的后端
exports.listen = function(server){
io = socketio.listen(server);
io.set('log level', 2);
io.set('flash policy port', 3005);
io.set('transports', [
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
io.sockets.on('connection', function(socket){
console.log("This is the socket id");
console.log(socket.id);
});
}
如果我在浏览器上什么都不做的话,这是输出
This is the socket id
gxn4mxnG9xOoVCLAoMPN
warn - websocket parser error: reserved fields must be empty
info - transport end (undefined)
info - handshake authorized 260xpHzgrsHd8UnNoMPO
This is the socket id
260xpHzgrsHd8UnNoMPO
warn - websocket parser error: reserved fields must be empty
info - transport end (undefined)
info - handshake authorized cMCv6BS-iLCQbmv6oMPP
它将保持连接和断开连接并重新连接,直到我关闭服务器
我不确定为什么会出现这种行为,因为我认为如果你停留在同一页面上,socket.io将不会重新连接。
任何建议都将不胜感激
答案 0 :(得分:0)
通过卸载Node v0.10.9并安装最新版本
来解决有关卸载节点的信息,请谨慎参考以下链接
http://notepad2.blogspot.com/2012/06/how-to-uninstall-nodejs-on-mac-os-x.html
重新安装节点
请检查brew或macport
还要记得在安装之前更新brew / macport