2016-10-17 7 views
1

У меня есть rachet websocket с codeigniter, и он отлично работает в localhost. Это главный server.php, что нам нужно запустить из терминала/CMDПостоянное подключение websocket к серверу

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(); 

я запускаю этот файл из ЦМДА с помощью следующей команды

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

Этого команды запуск сокет и теперь любого пользователя доступ моего сайта через браузер, тогда они подключаются к сокету, и я могу отправить ему сообщение. Когда я закрываю терминал/cmd, тогда сокет закрывается автоматически.

Теперь моя разработка выполнена, и я загружаю весь источник на сервер «openSuse». Итак, мой вопрос заключается в том, как я запускаю над файлом server.php на реальном сервере? (например, сервер Amazon ec2 OpenSuse). потому что сервер не имеет терминала/cmd.

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

Я пробую много, но это не работает.

+1

Посмотрите здесь: http://socketo.me/docs/deploy –

+0

Спасибо @AlokPatel Я буду реализовывать его и попытаться исправить мою проблему, я буду комментировать здесь, если есть какие-либо вопросы относительно вашей ссылки. – Jitendra

+0

Несомненно, никаких проблем. –

ответ

0

после установки HAProxy я создаю confing файла 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 моего апача порт Я также попробовать с 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.

Мой апач работать на порт 80 PGSQL беге на 5432 Теперь я не могу понять, какие услуги необходимо отключение.

Смежные вопросы