0

我正在构建一个允许同时观看多个游戏流的应用程序。我希望客户端在开始观看流以及客户端何时停止观看该流时告诉节点服务器。这样,我可以跟踪用户观看特定流的时长,并将该流添加到他们的观看历史记录中。

我的问题是:我该怎么做呢?我正在考虑设置保持活动的 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 回答