私は node.js の最新バージョンで socket.io を使用しています。socket.io は興味深い動作を示しています。接続イベントはクライアント側で発生しますが、サーバー側では発生しません。リロード後、または単にページを再度ロードした後、クライアント側とサーバー側の両方でイベントが正しく発生しました。何が問題なのですか (私のコードで?)?
// Client
var socket = io.connect(window.location.protocol + '//' + window.location.hostname, {
'sync disconnect on unload': true
});
socket.on('connect', function() {
alert("Connect");
// Do other stuff
});
-
// Server
io.sockets.on('connection', function(socket) {
console.log("connection");
io.sockets.on('connect', function(socket) {
console.log("connect");
});
});
サーバーを開始し、ページをロードしました: クライアントはアラートを発し、サーバーは単にログを記録しconnection
ます。ページを再度ロードすると、 と の両方がログに記録さconnection
れconnect
ます。
更新: 最初の接続だけでこのような問題が発生したようですが、その後はどこでも期待どおりに動作します。すべてのノード サーバー (再) 起動の直後に、その動作が表示されます。注: ノード自体は、socket.io が使用されているページを配信し、最初の要求でも機能するため、ノードの問題は除外する必要があります。ブラウザも問題ではありません。すべてのブラウザで同じです。