我使用带有socket.io插件的node.js服务器在不同设备上的两个客户端(闪存和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', ...
ps。
看来这不是防火墙问题-即使防火墙关闭,问题仍在发生
谢谢!
最佳答案
我认为这是与浏览器相关的问题。从socket.io github page:
flashsocket
不会在Chrome或其他完全启用的浏览器上激活
支持WebSocket,即使将flashsocket指定为唯一
运输。要测试flashsocket,请使用IE 8或IE 9或其他浏览器
本机不支持WebSockets。
因此,如果要确保flashsocket正常工作,请使用IE 8/9。