gpt4 book ai didi

php - Ratchet 服务器与长轮询

转载 作者:行者123 更新时间:2023-12-04 16:13:44 28 4
gpt4 key购买 nike

我正在开发一个具有聊天功能的网站,当用户收到新消息时需要即时通知。我正在尝试决定是使用 Ratchet 服务器还是使用 AJAX 实现长轮询系统。我目前已经实现了一个基本的 Pub/Sub Ratchet 服务器,当用户停留在我网站的“聊天”页面上时,它在传递通知时工作正常。我的问题是,只要用户移动到任何其他页面,连接就会关闭,我需要重新创建到服务器的连接。我知道有可能的解决方案,例如在始终显示的 IFrame 中存在 websocket 连接,但是如果我不需要,我不想走这条路。更好的方法是使用 AJAX 实现长轮询吗?我担心如果我在用户更改站点内的页面时不断地重新创建与 Ratchet 服务器的连接,那么当站点使用量很大时(一次有数千个用户),它会增加太多的开销。有没有人在 Ratchet 服务器方面有这方面的经验?

谢谢。

最佳答案

作为免责声明,我在这方面不是很了解,但您不应该使用长轮询。您说您需要“即时通知”,这意味着使用 AJAX 您必须发出非常频繁的请求,而使用 websockets 您只需建立连接并等待数据。

我没有做过任何类型的测试,但似乎每个浏览器选项卡建立和维护一个 websocket 连接的开销比不断发出 AJAX 请求要少,更不用说你不能真正通过 AJAX 获得“即时通知”,因为您必须以不可持续的速度提出请求才能实现这一目标。

因此,为用户拥有的每个浏览器选项卡打开一个 websocket 连接。如果他们打开一个新选项卡,或浏览到不同的页面,只需再次打开连接。

关于php - Ratchet 服务器与长轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516747/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com