我一直在寻找答案,但我发现很难在文档中找到关于此的结论(我完全有可能错过了一些东西)。
背景
我正在使用这个插件在我的网站上显示评论,并且我正在尝试添加“实时”功能。我知道 Facebook 没有像他们在他们的网站上那样“默认”为插件提供自动刷新功能,所以我通过setInterval()
函数中的 ajax 请求来模拟它。
问题
有没有办法实现长 ajax 拉、推或其他(更好的?)解决方案来获取评论信息?,多 ajax 请求解决方案工作正常,但有点消耗。
非常感谢!
我一直在寻找答案,但我发现很难在文档中找到关于此的结论(我完全有可能错过了一些东西)。
背景
我正在使用这个插件在我的网站上显示评论,并且我正在尝试添加“实时”功能。我知道 Facebook 没有像他们在他们的网站上那样“默认”为插件提供自动刷新功能,所以我通过setInterval()
函数中的 ajax 请求来模拟它。
问题
有没有办法实现长 ajax 拉、推或其他(更好的?)解决方案来获取评论信息?,多 ajax 请求解决方案工作正常,但有点消耗。
非常感谢!
通常你可以通过使用WebSockets来实现你想要的,但是我不认为 Facebook 支持基于 WebSockets 的 API 机制,因此可能没有不包括某种轮询的解决方案。但是,您可以将该轮询机制从用户的浏览器移至您的服务器,这可能会带来更好的用户体验并减少您必须对 Facebook API 进行的 API 调用次数,以防有速率限制。
更具体地说,我建议一种机制,您可以将 Facebook API 中的数据轮询到数据库中,然后设置一个 WebSockets 解决方案,例如Socket.IO,它使用 WebSockets 事件驱动传递从 Facebook API 轮询的数据(也就是说,很多比轮询更快)机制(如果用户的浏览器不支持 WebSockets,Socket.IO 会回退到 AJAX 轮询)。