我正在编写网络聊天,您可以同时与屏幕上的人进行多次一对一对话。 (基本上,就像个人信使,没有群聊)。
我的技术选项似乎是Long Polling和WebSockets,我正在尝试选择。
Long Polling的优势在于它实现起来非常简单,我可以返回我想要的任何数据(带有更新页面所需数据的自定义JSON对象)。
我对WebSockets的恐惧是因为PHP中没有本地库,所以你必须在不同的第三方之间购物,概念看起来更复杂,有渠道和订阅的东西以及你有什么。
浏览器兼容性对我来说不是问题。
Long Polling的性能是否比使用Websockets更差?如果不是,那么我的决定很简单!
是否有一个非常简单的PHP Websocket服务器?或者这个概念是如此简单我可以写自己的? (Mozilla在编写客户端时非常简单tutorial,但在服务器上却没有。)
答案 0 :(得分:2)
假设您的长轮询方案涉及由与前端相同的Web服务器托管的端点,这将意味着应用程序的每个用户有两个活动连接,因此您基本上可以减少一半的用户数量。您的websocket服务器将在不同的端口上运行,并且可以绕过您的Web服务器,因此连接是使用websockets节省的大量开销。
另一个节省开销的网页框架是,一旦建立了连接,就不需要持续的请求和响应。 Zombie websocket连接在带宽和CPU方面基本上都是免费的。
最后,我不认为长时间的民意调查会更容易实施。由于websockets的设计完全符合您的要求,我认为利用现有的websocket包实际上可以为您节省一些代码。如果你想使用PHP,我会看Ratchet(功能丰富)或phpwebsocket(精简版)。
答案 1 :(得分:0)
我建议改用 Python,Ruby或Node.js 。