Bes*_*Bid 6 php apache websocket angularjs ratchet
我创建了一个投标系统,该系统应该在有人对某个项目投标时实时工作并更新投标人表。
当前的解决方案不足以处理所有请求(我也尝试过长轮询,但没有取得多大成功)。在客户端,我使用 HTML 和 Javascript(使用 AngularJS),我每 1 秒向服务器发送一次 AJAX 请求以检查更新。(显然是个糟糕的选择)
最近,我尝试了 RatchetPHP,并且在本地一切正常,但是,我必须打开一个终端并启动服务器。
我的问题是是否有任何教程展示了如何将 Ratchet WebSocket 部署到服务器中(因为我在某处托管 Web 应用程序)。我已经搜索了很长时间,似乎没有人澄清如何在服务器(Apache)中部署 websockets
他们不是。由于 Ratchet 是一个 PHP 框架,因此它在 PHP 中运行。当您通过 Apache httpd Web 服务器提供网页时,您只需使用 mod_php 通过 HTTP 发回响应,但 Apache httpd 不支持 Web 套接字。因此,如果您使用 Ratchet PHP,则必须在 PHP 本身中运行 Web 套接字服务器。
另外,请注意Ratchet 文档已经向您展示了如何在生产中部署它。这个想法是在Supervisord中运行服务器,这是在 *nix 环境中守护进程的最简单方法。
在生产环境中运行 Ratchet 时,强烈建议从 Supervisor 启动它。Suporvisor 是一个守护进程,用于启动其他进程并确保它们保持运行。如果由于任何原因您长时间运行的 Ratchet 应用程序停止了,supervisor 守护进程将确保它立即重新启动。

(来源:socketo.me)
请注意,如果您要在 Apache/Nginx Web 服务器之间进行负载平衡,您将需要 HAProxy 之类的东西作为 Web Socket 服务器和常规 Web 服务器之间的附加反向代理。