我正在构建一个允许同时观看多个游戏流的应用。我希望客户端在开始观看流时以及客户端何时停止观看该流时告诉节点服务器。这样,我就可以跟踪用户观看特定流的时长,并将该流添加到他们的观看历史记录中。
我的问题是:我该怎么做呢?我正在考虑设置保持活动的ping,一旦我发现最后一个是自上一次以来合理的时间,我们假设客户端已停止观看流。这似乎有点麻烦设置正确。我想知道是否有一个库可以让我轻松地做到这一点。我看过socket.io,但我真的不明白它的用途,或者它是否适用于我的情况。
提前致谢!
答案 0 :(得分: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);
});
答案 1 :(得分:1)
Socket.io(或类似)就是你想要的。
io.sockets.on('connection', function (socket) {
console.log('user connected');
socket.on('disconnect', function () {
console.log('user disconnected');
});
});