【发布时间】:2013-08-11 14:21:32
【问题描述】:
我正在编写网络聊天,您可以在其中与屏幕上的人同时进行多次一对一的对话。 (基本上就像个人信使一样,没有群聊)。
我的技术选项似乎是 Long Polling 和 WebSockets,我正在尝试选择。
长轮询的好处是它很容易实现,我可以返回我想要的任何数据(一个自定义的 JSON 对象,其中包含更新页面所需的数据)。
我对 WebSockets 的恐惧在于 PHP 中没有原生库,因此您必须在不同的 3rd 方库之间进行购买,而且这些概念似乎更复杂,通道和订阅是什么以及您有什么。
浏览器兼容性对我来说不是问题。
Long Polling 的性能是否比 Websockets 差很多?如果不是,那我的决定很简单!
是否有一个非常简单的 PHP Websocket 服务器?还是这个概念很简单,我可以自己写? (Mozilla 有一个非常简单的tutorial 用于编写客户端,但不是在服务器上)。
【问题讨论】:
-
nginx 支持网络套接字。安装那个并使用它将数据传递给您的 php 脚本?替代方案是 Node.js,它很容易运行并使用 JSON 数据进行回复。看到您在谈论 JSON,我假设您已经熟悉 javascript 到可以有效使用 Node 的程度。至于用 PHP 编写的实际服务器 - 太麻烦了,相信我。
-
@N.B.:我已经在使用 nginx。那么使用 nginx Websocket 支持消除了对套接字服务器的需要吗?我只是使用 nginx 配置将数据传递到正确的位置?如果是这样的话,听起来好得令人难以置信。我也想听听性能方面的信息。
-
为什么不用现有的服务器,只写前端?
-
@forthrin 来自他们在 nginx 网站上写的内容,它支持该协议,因此它是一个 Web 套接字服务器。我没试过。另一方面,您可以用 PHP 编写自己的服务器。它只是一个简单的套接字监听端口,必须通过挑战。 PHPWebsocket 拥有一切,您可以将其用作您的基础并进行调整。如果您精通 js,那么 Node.js 可以让您非常轻松地使用 websocket。
标签: php websocket phpwebsocket