jse*_*ims 2 nonblocking ejabberd user-presence node.js
理想情况下,我希望找到简单,轻量级的代码,允许连接到我的网站的所有Web客户端保持当前在线的其他人的实时状态.
我知道ejabberd这样做,但它也做了很多其他的事情,我更喜欢一个小的代码占用空间,所以我可以自定义和理解它的性能特征.
我喜欢node.js的非阻塞方面,并且想知道是否有一个开源项目可以完成所有这些逻辑.
我还想看到一个在客户端维护这个模型的JavaScript实现.
对于实时状态,请使用socket.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);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |