socket.io与私人房间聊天

Tho*_*mas 12 chat node.js socket.io

我开始研究node和socket.io.

我已经创建了一个简单的聊天应用程序,我很惊讶它是多么容易.

现在,我想进一步提供一个在线用户列表,这些用户可以私下聊天.

什么是最好的方法来解决这个问题?

我读了0.7的新房间功能.这会是一种方法吗?每次2个用户需要私下聊天时动态创建一个新房间?但是如何通知第二个用户创建的新房间,以便他可以在那里连接?

自己处理所有上述逻辑会更好吗?存储房间和用户服务器端并每次循环它们并发送消息到适当的?

谢谢

Mic*_*ley 15

如果您想要的唯一功能是让两个人能够彼此发送消息(而不是一组人拥有一个房间),那么逻辑可能是这样的:

  1. 当用户连接时,将其连接存储在由用户名键入的对象中(或者在确保您可以找到特定用户连接的任何其他数据结构中).
  2. 当Bob想要与Jeff交谈时,请向服务器发送一个说明此事件的事件.
  3. 服务器在步骤1中查找对象中Jeff的Socket.IO连接.
  4. 服务器使用此连接向私人消息发送Jeff(并且仅发送Jeff).

  • 您可以在[自述文件](https://github.com/learnboost/socket.io)上了解有关房间的信息,但基本上,您可以调用`socket.join('房间名称')`向房间添加一个套接字,然后调用io.sockets.in('房间名称').emit(...)向该房间的套接字发送消息。 (2认同)