socket.io没有在flashsocket上向客户端发送连接消息

时间:2013-03-12 11:28:20

标签: flash node.js socket.io flashsocket

我正在使用带有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。

它似乎不是防火墙问题 - 即使防火墙已关闭,问题仍然存在

谢谢!

2 个答案:

答案 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问题)

非常感谢