php - websockets 是否适合与 PHP 一起使用?

标签 php html sockets websocket

我在 Internet 的各个地方看到它提到 HTML5 websockets 不能很好地与 PHP 一起使用,PHP 本质上只适合与它们一起使用。另一方面,我看到了多个关于将 PHP 与 websockets 结合使用的教程,并且我注意到一些 PHP websocket 实现,例如 http://code.google.com/p/phpwebsocket/

因此,是否有人拥有有关将 websockets 与 PHP 结合使用的任何权威信息。它们可以与 PHP 一起使用吗?与 Java 或 Python 相比,将它们与 PHP 一起使用有哪些优点/缺点?为什么我读到很多人说它们不能很好地协同工作?

最佳答案

问题是 WebSockets 是为长时间运行的线程/进程设计的,每个线程/进程都维护多个事件驱动的连接,而 PHP(和它的 Apache 队列)是围绕短暂的单进程程序范例(例如 max_execution_time is commonly set to 30 seconds)设计的。 ,并且 session 是单线程的)。

这并不是说用 PHP 编写 WebSockets 服务器实现是不可能的。我知道至少有一个项目存在 done exactly this (但请注意,即使是这个示例也是从命令行运行的,而不是通过 mod_php)。但是 WebSockets 的 PHP 实现很可能与最常用 PHP 的廉价/共享主机的设置不兼容。

因此,虽然它可以在 PHP 中实现,但无论如何您最终都必须运行一个单独的服务器进程(来自 Apache),并且如果您使用的是允许单独的服务器进程的托管类型,那么编写 WebSockets 代码会更容易在为事件驱动编程设计的东西中。

如果您不打算为数以万计的并发双工连接提供服务,那么结合使用 AJAX 和 SSE 可能会更好。使用您的 PHP 后端。

关于php - websockets 是否适合与 PHP 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11400541/

相关文章:

php - 如何更新现有自定义帖子类型的类别?

javascript - 添加包含其名称的类后动画不会运行

html - 具有嵌套悬停动画的等距形状的无限 360 度 3d 旋转

java - tcp 服务器 : why adding delay increases ability to service clients? 的异常行为

php - 单元测试和对象继承

javascript - 无法为 Google 图表构建 json 数据表

javascript - 使用 jQuery PHP 将图像替换为图像后刷新图像

python - 如何在Python中从HTML代码中提取元素

java - 套接字通信协议(protocol)/标准

c++ - Winsock 的 connect() 函数超时