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

07-26 02:47