首页 文章

长轮询或WebSockets

提问于
浏览
1

我正在编写Web聊天,您可以同时在屏幕上与人进行多次一对一对话 . (基本上,就像个人信使,没有群聊) .

我的技术选项似乎是Long Polling和WebSockets,我正在尝试选择 .

Long Polling的好处是它很容易实现,我可以返回我想要的任何数据(一个自定义的JSON对象,其中包含更新页面所需的数据) .

我对WebSockets感到害怕的是PHP中没有本地库,所以你必须在不同的第三方之间购物,概念看起来更复杂,有渠道和订阅的东西以及你有什么 .

浏览器兼容性对我来说不是问题 .

  • Long Polling的性能是否比使用Websockets更差?如果不是,那么我的决定很简单!

  • 是否有一个非常简单的PHP Websocket服务器?或者这个概念是如此简单我可以写自己的? (Mozilla在编写客户端时非常简单tutorial,但在服务器上却没有) .

2 回答

  • 0

    假设您的长轮询方案涉及由与前端相同的Web服务器托管的 endpoints ,这将意味着应用程序的每个用户有两个活动连接,因此您基本上可以将支持的用户数减少一半 . 您的websocket服务器将在不同的端口上运行,并且可以绕过您的Web服务器,因此连接是使用websockets节省的大量开销 .

    另外,websockets节省开销的地方是,一旦 Build 连接,就不需要持续的请求和响应 . Zombie websocket连接在带宽和CPU方面基本上都是免费的 .

    最后,我不认为长时间的民意调查会更容易实施 . 由于websockets的设计完全符合您的要求,我认为利用现有的websocket包实际上可以为您节省一些代码 . 如果你想使用PHP,我会看Ratchet(功能丰富)或phpwebsocket(lite) .

  • 2
    • 长轮询比Werbsockets差得多 definitely .

    • 不建议在PHP中使用任何websockets库,特别是聊天应用程序 .

    我建议改用 Python, Ruby or Node.js .

相关问题