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。是否得到它?那么我该如何解决我的问题:获得完整的工作解决方案