Постоянное подключение веб-сокета к живому серверу

Я реализовал rachet websocket с codeigniter, и он отлично работает в localhost. Это основной server.php, который нам нужно запустить из терминала / cmd

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 на живом сервере? (например, сервер Amazon Amazon ECS OpenSuse). потому что на сервере нет терминала / cmd.

Также это должно выполняться постоянно, поэтому каждый раз, когда любой пользователь получает доступ к моему сайту, он подключается к серверу, и я отправляю ему сообщение.

Я стараюсь по-разному, но это никак не работает.

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 2000 является websocket порт и port 80 мой порт apache
Я тоже попробую с 127.0.0.1 но это дает следующую ошибку

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

После пропуска этой ошибки я создаю supervisor.conf файл в /etc/ каталог и добавить программу 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
Теперь я не могу понять, какой сервис необходимо отключить.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]