4

ポート3000でsocket.ioサーバーを完全に実行しました。すべての socket.emit およびその他のアクションは、websocket 接続を介して機能します。

ただし、ポート 80 でサーバーを実行しようとすると、

app.listen(3000) to app.listen(80)

必要なクライアント側の変更をすべて行うと、socket.io は websocket の使用を停止し、xhr ポーリングに切り替えます

warn  - websocket connection invalid
info  - transport end
debug - set close timeout for client 1830609591747620770
debug - cleared close timeout for client 1830609591747620770
debug - cleared heartbeat interval for client 1830609591747620770
debug - setting request GET /socket.io/1/websocket/1830609591747620770
debug - set heartbeat interval for client 1830609591747620770
warn  - websocket connection invalid
info  - transport end
debug - set close timeout for client 1830609591747620770
debug - cleared close timeout for client 1830609591747620770
debug - cleared heartbeat interval for client 1830609591747620770
debug - setting request GET /socket.io/1/xhr-polling/1830609591747620770?t=1338511205390
debug - setting poll timeout
debug - client authorized for 
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 1830609591747620770
debug - setting request GET /socket.io/1/xhr-polling/1830609591747620770?t=1338511205500
debug - setting poll timeout
debug - discarding transport

代わりに xhr ポーリングに切り替える理由と、何を試すことができるかについてのアイデアはありますか?

ありがとう

編集::私が高速WebサーバーとWebソケットサーバーも実行しているという事実は問題になりますか? 私のコード内には、稼働中の両方があるからです。これが問題の原因である場合、どうすれば修正できますか?

4

2 に答える 2

4

XHR ポーリングに切り替える理由はわかりませんが、websocket サーバーをポート 80 で動作させたいという目的のために、node-http-proxy パッケージhttps://github.comを使用して問題を解決しました。 /nodejitsu/node-http-proxy

コードは同じままにしましたが、プロキシにポート 80 でリッスンさせ、Websocket がリッスンしていたポート 3000 にルーティングしました。

于 2012-06-13T04:53:43.717 に答える
0

「websocket connection invalid」という警告は、ポート 80 で Web ソケットをブロックしているファイアウォール/ウイルス対策セキュリティの問題を示唆しているようです。このような問題の完全なリストについては、Socket.io とファイアウォール ソフトウェアを確認してください。

http://websocketstest.com/のテスト/診断ページを使用して、ネットワークの互換性を確認してください。

お役に立てれば。

于 2012-06-01T03:31:45.680 に答える