我正在使用带有socket.io插件的node.js服务器来连接不同设备上的两个客户端(flash和js)
对于Flash集成我正在使用FlashSocket.IO库
并且在我的.js服务器文件上有io.set('transports', ['websocket', 'flashsocket']);
虽然大多数计算机上的一切正常 - 在某些计算机上(我不知道它是否相关但我检查的两台计算机都运行Windows 8) - 连接不起作用
在服务器上启用调试时,我发现对于工作客户端,服务器发送1::
消息,而对于不工作的客户端,它不会
这是工作客户端日志的一部分:
debug - client authorized
info - handshake authorized 8JVqPB6MuJYJeMR3RVN_
debug - setting request GET /socket.io/1/flashsocket/8JVqPB6MuJYJeMR3RVN_
debug - set heartbeat interval for client 8JVqPB6MuJYJeMR3RVN_
debug - client authorized for
debug - flashsocket writing 1::
connected - //my console.log call on io.sockets.on('connection', ...
debug - flashsocket received data packet 5:0+::{"args":"7087623252","name":"register"}
和无效的客户:
debug - client authorized
info - handshake authorized 0nztNzwvw260Pa-bRHef
debug - setting request GET /socket.io/1/flashsocket/0nztNzwvw260Pa-bRHef
debug - set heartbeat interval for client 0nztNzwvw260Pa-bRHef
debug - client authorized for
connected - //my console.log call on io.sockets.on('connection', ...
P.S。
它似乎不是防火墙问题 - 即使防火墙已关闭,问题仍然存在
谢谢!
答案 0 :(得分:1)
我认为这是与浏览器相关的问题。来自socket.io github page:
flashsocket
无法在Chrome或其他完全支持的浏览器上激活 支持WebSockets,即使flashsocket被指定为唯一的 运输。要测试flashsocket,请使用IE 8或IE 9或其他浏览器 本机不支持WebSockets。
因此,如果您想确保flashsocket正常工作,请使用IE 8/9。
答案 1 :(得分:0)
最终这是一个与防病毒相关的问题
在我疯了一秒之前,我发现安装在该计算机上的Avast阻止了连接 - 当Web Shield被禁用时 - 一切都像魅力一样(在我的Win7机器上安装相同的防病毒软件没有重现问题 - 可能是Win8 + Avast问题)
非常感谢