socket.io与私人房间聊天

时间:2011-09-16 12:41:44

标签: node.js chat socket.io

我开始研究node和socket.io。

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

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

最好的方法是什么?

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

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

由于

2 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:1)

Hej Thomas

如果只有2个用户说你不需要使用发布,那么只需将该消息从客户端发送到服务器,让服务器找到另一个客户端并将其发送出去。