Javascript socket.io私人聊天:一次只能进行一次聊天

Javascript socket.io私人聊天:一次只能进行一次聊天,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,下面是我使用socket.io聊天室实现两个用户一对一聊天的方法 USERS TABLE ------------ id name 1 bar 2 foo 3 clay 假设用户bar想要与foo socket.join(1); socket.join(2); 发送消息时,对方的用户id用作接收方id,以便我可以轻松发送消息 socket.on('chat', function(data){ //data object contains other user id as receive

下面是我使用
socket.io聊天室实现两个用户一对一聊天的方法

USERS TABLE
------------
id name
1  bar
2  foo
3  clay
假设用户
bar
想要与
foo

socket.join(1);
socket.join(2);
发送消息时,对方的用户id用作接收方id,以便我可以轻松发送消息

socket.on('chat', function(data){
//data object contains other user id as receiver id
  io.sockets.in(data.receiverId).emit('chat',{
                message:data.message,
                created_at:new Date()
            });
});
这很好,但我需要一个条件,一次一个用户只能聊天一次的用户


如果
clay
bar
发送消息,则
bar
可以读取该消息,那么如何避免此问题

无法向房间中的特定人员发送消息。当您在房间中发出任何事件时,它将为房间中连接的每个人发出。
这里,我给您一个加入房间的示例,以及如何在该房间中发出事件

// Server Side
// connection is inbuilt event of socket
io.on('connection', (socket)=>{
    // Every time it generates new id when user is connected to socket. 
    console.log(socket.id, "is connected");

    socket.join("RoomName");

    // Here, message is an event name and you can pass your data in second parameter
    io.in("RoomName").emit("message", {"data": "Hello All!"});
}

尝试使用
到目标套接字客户端id

//发送到单个socketid(私有消息)
io.to(${socketId}').emit('hey','I刚认识你');

参考:

您不能在聊天室中私下发送消息。这里data.receiverId充当房间id。它不是任何用户id。是否得到它?那么我该如何解决我的问题:获得完整的工作解决方案