理想情况下,我希望找到简单、轻量级的代码,允许连接到我的网站的所有 Web 客户端维护当前在线的其他人的实时状态。
我知道 ejabberd 可以做到这一点,但它还可以做很多其他事情,而且我更喜欢较小的代码占用量,这样我就可以自定义并了解其性能特征。
我喜欢 Node.js 的非阻塞特性,并且想知道是否有一个开源项目可以完成所有这些逻辑。
我还希望看到在客户端维护此模型的 JavaScript 实现。
对于实时状态,请使用套接字.io。每次有人连接时,将其添加到已连接的用户列表中。为了获得准确的统计数据,您需要跟踪用户会话。看http://www.danielbaulig.de/socket-ioexpress/
var onlineUsers = {};
var online = 0;
io.sockets.on('connection', function (socket) {
onlineUsers[socket.handshake.sessionID] = socket.handshake.session;
online = Object.keys(onlineUsers).length;
socket.broadcast.emit('online', online);
socket.on('disconnect', function () {
delete onlineUsers[socket.handshake.sessionID];
online--;
socket.broadcast.emit('online', online);
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)