假设我们想要创建私人聊天室,用户可以在其中进行小组聊天。一个用户可以加入多个/x组。在每种情况下,我都需要在服务器上创建一个唯一的组并向用户订阅这些组。哪种方法是推荐的/性能更高的方法:
[1] 在服务器端,我创建一个 Room 类并添加新房间channels对于每个群聊,例如“聊天/房间-asdhqk1”、“聊天/房间-fwuefhw1”、“聊天/房间-awsdhqwd2”。现在,一些指定的用户可以加入该频道并被添加到群组客户端列表中。在客户端,用户订阅他们添加到的组频道。
问题:当用户处于 x 个频道时,我需要在侧面加载后将他订阅到这些 x 个频道。
好:可以通过群组频道名称向特定群组广播,所有订阅该频道的用户都会自动收到消息,因为他们已经在js部分订阅了该频道。
[2] 每个用户都有自己的自有频道,例如“通知/用户1”,“通知/用户2”...。在服务器端,我在 Rooms 类中创建组(无通道)。通过将用户添加到房间列表的子列表,可以将用户添加到特定房间。当他们互相聊天时,服务器会迭代群聊的订阅用户,并向每个用户通知通道发送消息 - 这里根本没有群组通道 - 仅针对每个用户通道。
问题:我无法轻松广播消息,我需要迭代每个订阅用户并将消息发送到他的通知通道。另外,我无法使用前端的“发布”方法轻松地将消息发布到频道,因为用户分散在不同的频道中。
好:最后,广播方法会执行相同的操作:迭代订阅者列表。为了发送消息,我可以轻松实现与“发布”方法相同的 RPC 方法 - 查找组的订阅用户并将消息发送给他们。通过这种方法,用户不需要连接到客户端的 x 个通道,他只需一个处理所有通道的通道。
(我知道对于第二种方法,需要一个推动器(例如zmq)).
你有什么意见?我认为第二个更好,因为我不必让客户端的用户订阅 x - 频道。如果用户需要首先连接到例如500 个频道。
Regards.
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)