假设我们有一个包含大量帖子的应用程序,可以单独查看。单个视图包含对帖子的评论。
我想用套接字实时制作评论系统(所以新评论会立即显示而不会刷新),但我不完全确定如何做到这一点:
post_{id}
)订阅了一个房间。新评论会播放到这个房间。new_comment
事件并在客户端评估(例如,拥有post_id
)我在第一个想法中看到的问题:
我在第二个想法中看到的问题:
new_comment
事件,因此可以在没有大量工作的情况下阅读评论(开发者控制台>听取事件和{{ 1}}其数据> win)。或者还有其他可能吗?
答案 0 :(得分:0)
对于查看帖子的单个视图(带有评论)的每个页面,它应该完全正常,可以放在特定于该帖子的房间中。这是您的服务器添加到房间的连接,因此它可以确保只对能够查看该帖子的用户执行此操作。
然后,当新评论到达帖子时,您只需向关联的房间广播,只有那些已经在查看该帖子的人才会收到该消息。
当网页离开或关闭标签时,页面已打开的任何webSocket连接都会自动关闭,当它关闭时,socket.io会自动将其从任何房间中删除,这样你就不会不用担心这种清理程度。
我建议您从帖子ID中获取房间名称,以便为房间命名。
我在第一个想法中看到的问题:
查看多个帖子后,我们订阅了很多房间。我不 知道这是否有问题,但感觉有点奇怪。我不能 由于标签而取消订阅会议室。
这应该不是问题。每个标签只能查看一个帖子,因此只能订阅一个帖子的评论通知。当选项卡被导航离开或关闭时,socket.io连接将自动关闭并从其所在的任何房间中移除。