如何让2个套接字加入同一个聊天室(socket.io)

时间:2016-12-19 09:24:56

标签: android node.js socket.io

我有一个问题,但研究了很多天但仍然没有解决它。 我将聊天用户项目设置为用户socket.io和nodejs。 我是用户A,当我在应用程序上的列表用户上单击用户B时,它将允许用户A和B加入同一个房间(set roomname is (IdOfUserA)_(IdOfUserB))。 如何在服务器端执行相同操作,请帮助我或向我显示类似问题的帖子。 非常感谢。

1 个答案:

答案 0 :(得分:0)

在伪代码中我会做这样的事情:

在客户端

socket.emit('chat-with-user-b', {userb : IdOfUserB}); 
socket.on('chat-with-me', function(roomID){
   // open tchat etc..
});

在服务器端:

io.on("connection", function(socket){
   socket.on('chat-with-user-b', function(IdOfUserB){
      var roomID = IdOfUserB + '_' + socket.id; // create a unique room id
      socket.join(roomID); // make user A join room
      io.sockets[IdOfUserB].join(roomID); // make user B join  room
      io.sockets.in(roomID).emit('chat-with-me', roomID);  // send join event to both.
   });
});