0

複数のゲーム ストリームを同時に視聴できるアプリを作成しています。クライアントがストリームの監視を開始したときと、クライアントがそのストリームの監視を停止したときをノード サーバーに通知するようにします。こうすることで、ユーザーが特定のストリームを視聴した時間を追跡し、そのストリームを視聴履歴に追加することもできます。

私の質問は次のとおりです。どうすればこれを行うことができますか? キープアライブ ping を設定することを考えていましたが、最後の ping が前回から妥当な時間であることが判明すると、クライアントはストリームの視聴を停止したと見なされます。これを適切に設定するのは少し面倒なようです。それを簡単にできるライブラリがあるかどうか知りたいです。私はsocket.ioを見てきましたが、その目的や自分の状況に当てはまるかどうかはよくわかりません。

前もって感謝します!

4

2 に答える 2

1

これを行うには、socket.io を使用できます。socket.io には組み込みのハートビート機能があります。あなたがする必要があるのは、disconnectedイベントの処理です。詳細: https://github.com/LearnBoost/socket.io-spec

アップデート:

クライアントで:

socket.emit('startWatch', { streamid: 'stream1' });
....
socket.emit('stopWatch', {});

サーバー上:

io.sockets.on('connection', function (socket) {
  // listen to startWatch event
  socket.on('startWatch', function (msg) {
     // handle startWatch here
  });

  //listen to stopWatch event
  var stopWatchHandler = function () {... }
  socket.on('stopWatch", stopWatchHandler);
  socket.on('disconnected", stopWatchHandler);
});
于 2013-03-24T05:01:03.883 に答える
1

Socket.io (など) が必要です。

io.sockets.on('connection', function (socket) {
  console.log('user connected');
  socket.on('disconnect', function () {
    console.log('user disconnected');
  });
});
于 2013-03-24T05:01:18.137 に答える