使用PHP在Apache服务器中部署WebSockets

问题描述 投票:4回答:2

我创建了一个投标系统,该系统应该可以工作并在有人竞标某个项目时更新bidders表。

当前的解决方案不足以处理所有请求(我也尝试了长时间轮询,但没有成功)。在客户端,我使用HTML和Javascript(与AngularJS一起使用),并且每1秒钟将AJAX请求发送到服务器以检查更新。 (显然是一个错误的选择)

最近,我尝试了RatchetPHP,但在本地一切正常,但是,我必须打开终端并启动服务器。

我的问题是,有没有教程可以显示如何将Ratchet WebSocket部署到服务器中(因为我将Web应用程序托管在某个地方)。我已经搜索了很长时间,似乎没人澄清如何在服务器(Apache)中部署Websockets

php angularjs apache websocket ratchet
2个回答
2
投票

不是。由于Ratchet是一个PHP框架,因此可以在PHP中运行。通过Apache httpd Web服务器提供网页服务时,您仅使用mod_php通过HTTP发送回响应,但是Apache httpd不支持Web套接字。因此,如果您使用的是Ratchet PHP,则必须在PHP本身中运行Web套接字服务器。

[另外,请注意Ratchet Documentation已经向您展示了如何在生产环境中部署它。想法是在supervisord中运行服务器,这是在* nix环境中守护进程的最简单方法。

[在生产中运行Ratchet时,强烈建议从suporvisord启动它。 Suporvisor是一个守护程序,它启动其他进程并确保它们保持运行状态。如果您的长期运行的Ratchet应用程序由于任何原因暂停了主管守护程序,则将确保它立即启动备份。

setup(来源:socketo.me

注意,如果要在Apache / Nginx Web服务器之间进行负载平衡,则需要HAProxy之类的东西作为Web Socket服务器与常规Web服务器之间的附加反向代理。


1
投票

我写了一篇很棒的教程(没有偏见:P),它关于如何从头开始并建立棘轮的Web套接字并在ubuntu服务器上运行。

http://blog.samuel.ninja/the-tutorial-for-php-websockets-that-i-wish-had-existed/

基本思想是制作一个服务conf文件,以将php文件作为服务运行。

© www.soinside.com 2019 - 2024. All rights reserved.