Express,所有连接客户端的共享数据

时间:2017-02-06 09:39:44

标签: node.js express memory socket.io shared

民间, 有没有办法可以创建基于会话的数组或memorydb或任何其他技术,您可以创建一个可以在所有客户端共享的数据池。 基本上,我需要创建一个基于socket.io的聊天应用程序,它可以跟踪所有登录用户的踪迹。它将登录用户数组推送到所有客户端或任何新客户端加入。 感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您应该使用socket-io配置socket.io-redis或socket-io-mongodb适配器

要将在线用户列表发送到客户端,您可以使用mongodb或redis或MySQl创建文档。什么时候触发socket.on('connection') 使用

从中获取用户ID
var userId = socket.request.user.id; 
var socketId = socket.id;

并将其保存在数据库中。

每当套接字断开连接时,都会将其从数据库中删除。

当客户端登录并请求在线用户从数据库中获取并在每个套接字上运行io.sockets.connected [socketId]以验证套接字是否仍然连接并将列表发送回客户端。

https://github.com/socketio/socket.io-redis https://www.npmjs.com/package/socket.io-mongodb