1

node.js サーバーと socket.io プラグインを使用して、異なるデバイス上の 2 つのクライアント (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ページから:

flashsocketflashsocketが唯一のトランスポートとして指定されている場合でも、ChromeまたはWebSocketを完全にサポートする他のブラウザーではアクティブになりません。flashsocketをテストするには、IE8またはIE9、あるいはWebSocketをネイティブにサポートしていない他のブラウザーを使用します。

したがって、flashsocketが正しく機能していることを確認したい場合は、IE8/9を使用してください。

于 2013-03-12T17:47:43.440 に答える
0

最終的にはウイルス対策関連の問題でした

発狂する 1 秒前に、そのコンピューターにインストールされているアバストが接続をブロックしていることに気付きました。ウェブ シールドが無効になっていると、すべてがうまく機能しました。

(私の Win7 マシンに同じアンチウイルスをインストールしても問題は再現されませんでした - おそらくそれは Win8+Avast の問題でした)

とにかくありがとう

于 2013-03-24T13:41:27.033 に答える