【问题标题】:Persistent connection of websocket into live server将 websocket 持久连接到实时服务器
【发布时间】:2017-02-26 02:47:07
【问题描述】:

我已经用 codeigniter 实现了 rachet websocket,它在 localhost 中运行良好。这是我们需要从终端/cmd运行的主server.php

require __DIR__ . "/../vendor/autoload.php";

use Chat\Chat;

use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;

$server = IoServer::factory(new HttpServer(new WsServer(new Chat)), 2000);

$server->run();

我使用以下命令从 cmd 运行此文件

D:\wamp\www\my_project\api\application\third_party\Realtime\bin server.php

此命令启动套接字,现在任何用户通过浏览器访问我的站点,然后他们与套接字连接,我可以向他发送消息。当我关闭终端/ cmd 然后套接字自动关闭。

现在我的开发已经完成,我将所有源代码上传到“openSuse”服务器上。所以我的问题是我如何在实时服务器上运行 server.php 文件? (例如亚马逊 ec2 OpenSuse 服务器)。因为服务器没有终端/cmd。

此外,这应该持续运行,因此任何时候任何用户访问我的站点时,他们都会连接到服务器,我会向他发送消息。

我尝试了很多方法,但无论如何都不起作用。

【问题讨论】:

  • 谢谢@AlokPatel,我会实施它并尝试解决我的问题,如果您给定的链接有任何问题,我会在这里发表评论。
  • @AlokPatel 你能告诉我如何在本地主机中设置持久连接吗?我正在使用 wamp (Windows)。我想在 cmd 和任务计划中没有运行命令的情况下做到这一点。有什么方法可以设置任何配置文件?
  • 如果您正在开发,最好使用 cmd。它将帮助您查看日志和调试。
  • @AlokPatel 我参考了您给定的文档并按照步骤操作。请看我下面给出的答案,我不能在这里添加长评论:)

标签: php codeigniter sockets websocket opensuse


【解决方案1】:

安装 haproxy 后,我将配置文件 haproxy.cfg 创建到 /etc 目录中 在这个文件中我设置了

backend ws
    server  ws1 my_public_ip:2000

backend www
    timeout server  30s
    server  www1    my_public_ip:80

这里 port 2000websocket 端口,port 80 是我的 apache 端口 我也尝试使用127.0.0.1,但它给出了以下错误

[ALERT] 293/101352 (2291) : Starting frontend public: cannot bind socket [0.0.0.0:80]

跳过此错误后,我在 /etc/ 目录中创建 supervisor.conf 文件并根据您给定的链接添加 rachet 程序 在命令中,我给出了 server.php 文件的完整路径

command = bash -c "ulimit -n 10000; exec /usr/bin/php /srv/www/htdocs/ci_chat/application/third_party/Realtime/bin/server.php"

但它给了我以下错误

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

我的 apache 在端口 80 上运行 pgsql 在 5432 上运行 现在我无法理解需要关闭哪个服务。

【讨论】:

    猜你喜欢
    • 2015-06-11
    • 2012-07-30
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 2021-06-23
    相关资源
    最近更新 更多