NodeJS - 处理私人消息的最佳方式?

时间:2016-06-24 20:55:20

标签: node.js chat private

我想使用NodeJS和websockets创建一个私人消息系统。 我想知道创建这样的系统的最佳方法是什么。

创建1个nodeJS服务器并为每个用户绑定listen-event是否更好,或者我应该为2个用户之间的每个会话创建唯一的端口/服务器。 即。

  

会话1(user1& user2):端口8080

     

会话2(user2& user3):端口8081

     

会话3(user1& user3):端口8082

1 个答案:

答案 0 :(得分:1)

  

创建1个nodeJS服务器并为每个服务器绑定listen-event是否更好   用户,还是应该为每个对话创建一个唯一的端口/服务器   两个用户之间。即。

都不是。

您可以轻松地在两个用户之间创建私人对话,其中一个服务器在一个端口上进行侦听,并允许用户连接到服务器,然后确定他们希望与其进行私人对话的其他用户。

  1. 用户在登录并连接到服务器时使用某种凭证向服务器标识自己。然后,您的服务器知道哪个用户属于哪个连接。
  2. 然后,服务器可以简单地允许userA将消息传递给userB,反之亦然,但不允许任何其他人访问这些消息,从而促进任意两个用户之间的私人对话。不需要每个用户的私人服务器。不需要自定义端口。您确实需要某种用户身份验证服务,以便您可以知道哪个用户具有一定的可信度。
  3. 您可以在socket.io demo chat server中看到一些您要问的内容。

    以下是有关其工作原理的更详细说明:

    1. UserA连接到服务器并标识自己。
    2. UserB连接到服务器并标识自己。
    3. UserC连接到服务器并标识自己。
    4. UserA向服务器发送消息,指示服务器向userC发送私信。
    5. 服务器从UserA接收该消息并将其转发给UserC。
    6. UserC收到来自userA的私信。
    7. 服务器不会存储来自UserA的消息,也不会将其发送给任何其他用户(从而使其成为私人消息)。
    8. 然后,UserC可以使用相同的机制响应UserA。
    9. 注意:几乎所有方案都要求您拥有用户身份验证并且拥有用户标识符。然后,您还必须在用户界面中显示该内容,以便给定用户可以识别他们希望与之通信的当前连接用户。