Websockets Notification- / Chat- System

时间:2015-10-01 14:14:42

标签: php websocket notifications rpc publish-subscribe

我已经阅读了很多关于websockets的内容,并且已经在我的系统中实现了它们。这个问题是关于如何正确使用它们。我想以正确的方式实施通知和聊天系统。

对于通知,我有频道"通知/频道"对于聊天,我有频道"聊天/频道"。

Aren也是这两个频道"全球" ?让我们说当网站拥有1.000.000用户时,这意味着所有这些用户都将在这两个渠道中。当一个通知发送给另一个特定用户时,这意味着该消息通过一个1.000.000用户订阅的频道发送。

与聊天消息相同。我们假设用户想要与其他用户聊天。每条消息都会通过所有用户订阅的频道,最后,由于传递的receiver_id,只有目标用户会收到该消息。

如何正确处理通知渠道和"私人"聊天频道?

  

为每个用户创建更高效​​和安全的子通道" (群聊和通知,E.G" notifications / channel / user1"),或者只是让所有用户进入一个大频道?

1 个答案:

答案 0 :(得分:2)

就个人而言,我要解决的问题如下:

每个用户都有1个websocket连接。此连接将用于传递所有数据。我会使用json格式来回传递数据。我会在json结构中使用一个字段来指示消息的类型,以及其他信息,例如聊天室ID。所以,如果我想发送通知,它可能是这样的(非常简单的例子):

{
    "type":"notification",
    "message":"New Mail"
}

聊天消息可能是这样的:

{
    "type":"chat",
    "chatID":4756,
    "message":"Hello, world!"
}

客户端Javascript逻辑将确定消息的类型以及如何处理它。服务器端逻辑将确定用户是否已订阅"到指定的聊天室,所以它会知道要发送给哪个用户的聊天消息。这样可以保证其安全,因此您不会向未订阅房间ID的用户发送聊天消息。

如果您需要对此方法进行任何澄清,请与我们联系。