Node.js私聊系统算法

Node.js private chat system algorithm

我用express,socket.io.

我有两种用户类型

  1. 站点访问者(站点用户)

  2. 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)