Node.js私聊系统算法
Node.js private chat system algorithm
我用express
,socket.io
.
我有两种用户类型
站点访问者(站点用户)
admins(站点管理员)
当访问者访问该站点时,我将用户数据(浏览器、位置、ip..等)添加到 VisitorObject
并向管理员显示 VisitorObject
。
当管理员想向访问者发送消息时,我应该只发出管理员想要输入的用户的功能。
我不想用
io.sockets.emit('newMessage', message);
我想这样用
io.sockets[id].emit('newMessage', message);
编辑---
我正在连接 node.js 服务器
var socket = io.connect('http://127.0.0.1:3000', {query: 'id=' + id});
这个id不是套接字id,它是用户id。我不想在发送消息时使用 socket.id。我想使用用户 ID。因为socket.id浏览器的tab总是变化的
尝试这样的事情
// sending to individual socketid (private message)
socket.to(<socketid>).emit('newMessage', message);
或
io.to(<socketid>).emit('newMessage', message);
https://socket.io/docs/emit-cheatsheet/
如果你需要在 user_id 之前发射,你可以这样做
socket.join(user_id); // when user connected
比
io.to(user_id).emit('newMessage', message)
我用express
,socket.io
.
我有两种用户类型
站点访问者(站点用户)
admins(站点管理员)
当访问者访问该站点时,我将用户数据(浏览器、位置、ip..等)添加到 VisitorObject
并向管理员显示 VisitorObject
。
当管理员想向访问者发送消息时,我应该只发出管理员想要输入的用户的功能。
我不想用
io.sockets.emit('newMessage', message);
我想这样用
io.sockets[id].emit('newMessage', message);
编辑---
我正在连接 node.js 服务器
var socket = io.connect('http://127.0.0.1:3000', {query: 'id=' + id});
这个id不是套接字id,它是用户id。我不想在发送消息时使用 socket.id。我想使用用户 ID。因为socket.id浏览器的tab总是变化的
尝试这样的事情
// sending to individual socketid (private message)
socket.to(<socketid>).emit('newMessage', message);
或
io.to(<socketid>).emit('newMessage', message);
https://socket.io/docs/emit-cheatsheet/
如果你需要在 user_id 之前发射,你可以这样做
socket.join(user_id); // when user connected
比
io.to(user_id).emit('newMessage', message)