4

フロントエンドで HTML5 と Javascript を使用し、バックエンドで Node.js を使用して、単純な Web アプリケーションを構築しています。また、Socket.IO を使用して、クライアントとサーバーの間でデータをやり取りしています。全員がサインインしてチャット ルームに参加するチャット ページがあるとします。バックエンドのチャット ルームにいるすべての人を追跡します。私がやりたいのは、その部屋を出た人を部屋から追い出すことです。たとえば、誰かがブラウザを閉じた場合、そのユーザーはアクティブ ユーザーとして表示されなくなります。

Socket.IO には切断イベントがあり、これはこれを行うのに最適なツールと思われます。たとえば、このコードを実行すると:

socket.on("disconnect", function (){
  console.log("DISCONNECTED");
});

誰かがブラウザを閉じると、「DISCONNECTED」が出力されます。私の質問は、誰がそのブラウザを正確に閉じたかをどうやって知ることになっているのでしょうか? 切断イベントにはデータが渡されないため、誰が切断イベントを開始したかを正確に確認する方法がわかりません。どんな助けでも大歓迎です!

4

3 に答える 3

4

あなたができる:

socket.on("disconnect", function (){
  console.log(this.id); // this.id is the 'id' of the socket that got disconnected
});
于 2013-04-25T07:41:42.197 に答える