【发布时间】:2018-05-01 02:03:29
【问题描述】:
我想在 Python 中使用 Web Socket 创建一个实时通知中心。 我有一个向特定用户发送/发出消息的功能。
我已阅读有关套接字 ID 和房间的信息。我认为有几种方法可以使用 Socket IO 中的这两个功能进行直接用户交互。
第一:
在文档中说,每个连接到套接字服务器的客户端/套接字,他们都给出了一个唯一的套接字#id,并加入了一个由 id 标识的房间。 我有一个想法,我不需要再次为用户创建房间,只需使用此默认房间即可。
通过使用这些,我想创建一个 socket#id 与 userid(记录的用户 id)的映射,并将其存储到 redis 中。就像,如果我想向用户 id 发送消息,我只需要搜索它的 socket#id。
第一种方法的问题是,socket#id 是否相同 如果客户端断开连接并很快重新连接,则连接可以 成立?
第二:
我已经阅读了许多关于使用空间进行直接消息的资料。对于已连接的客户端或套接字,我只需要使用从客户端发送的用户 id 的 id 创建一个新房间(用户登录后)。
这种方式的优点是,如果用户在多个设备上使用相同的用户 ID,我可以将它们分组到一个房间中。所以,如果我想通知所有设备,我只需要为 id 用户的房间发送消息。
这种方式的问题是,用户将从默认房间移动 从第一种方式,否则他们将在 2 个房间(1 个默认房间,1 个指定房间 按用户 ID)?
谢谢
【问题讨论】: