1

我正在使用带有 socket.io 插件的 node.js 服务器在不同设备上的两个客户端(flash 和 js)之间进行连接

对于闪存集成,我使用FlashSocket.IO库并io.set('transports', ['websocket', 'flashsocket']);在我的 .js 服务器文件上

虽然在大多数计算机上一切正常 - 在某些计算机上(我不知道它是否相关,但我检查的两台计算机都运行 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

这似乎不是防火墙问题 - 即使防火墙关闭,问题也会不断发生

谢谢你!

4

2 回答 2

1

我认为这是与浏览器相关的问题。从socket.io github 页面

flashsocket不会在 Chrome 或其他完全支持 WebSockets 的浏览器上激活,即使 flashsocket 被指定为唯一的传输。要测试 flashsocket,请使用 IE 8 或 IE 9,或其他本身不支持 WebSockets 的浏览器。

因此,如果您想确保 flashsocket 正常工作,请使用 IE 8/9。

于 2013-03-12T17:47:43.440 回答
0

最终这是一个与防病毒相关的问题

在我发疯前一秒,我发现安装在该计算机上的 Avast 阻止了连接 - 当 Web Shield 被禁用时 - 一切都像魅力一样

(在我的 Win7 机器上安装相同的防病毒软件并没有重现问题 - 可能是 Win8+Avast 问题)

不管怎么说,还是要谢谢你

于 2013-03-24T13:41:27.033 回答