この質問は、socket.io バージョン < 0.9.x に関するものです。新しいバージョンでは、トランスポートとトランスポートの設定方法が異なります。
node js と socket.io を 2 週間でテストします。私が始めたときsocket.send(message)
、クライアントの機能から問題が発生しました。サーバーにメッセージを送信できません。しかし、サーバーからのメッセージは引き続き受信できます。サーバー側の構成トランスポートを見つけたときに、この問題を解決しました。
socket.set('transports',[
'xhr-polling'
, 'jsonp-polling'
]);
すべてが良い。これで、サーバーにもメッセージを送信できます。しかし、なぜトランスポートを構成しなければならないのか、まだ疑問があります。デフォルトの socket.io は、次のような websocket トランスポート設定を使用します。
socket.set('transports', [
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
そのため、最初は xhr ポーリングではなく websocket を使用します。socket.send(msg)
しかし、 evenを使用すると、サーバーはクライアントから送信されたメッセージを受信できませんsocket.emit(...)
。
問題は、ここで websocket をサポートしていないのは何ですか? browser または node.js ... 申し訳ありませんが、Google から非常に多くのページを検索しましたが、これに対する答えが見つかりませんでした。
node.js バージョン 0.8.16、socket.io バージョン 0.9.13、および最新のブラウザー (chrome、firefox、opera) を使用しています。
xhr-polling ではなく websocket を使用したい。