2016-10-17 4 views
1

나는 codeigniter로 rachet websocket을 구현했으며 localhost에서는 잘 작동합니다. 이/I 명령을 지금websocket을 라이브 서버에 지속적으로 연결

D:\wamp\www\my_project\api\application\third_party\Realtime\bin 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를 우리가 터미널에서 실행하는 데 필요한 주요 server.php입니다 브라우저를 통해 그들은 소켓과 연결하고 나는 그에게 메시지를 보낼 수 있습니다. 내가 터미널/cmd를 닫으면 소켓이 자동으로 닫힙니다.

이제 내 개발이 완료되었으며 "openSuse"서버에 모든 소스를 업로드합니다. 그래서 내 질문은 내가 살아있는 서버에 server.php 파일 위에 어떻게 실행입니까? (예 : 아마존 ec2 OpenSuse 서버). 왜냐하면 서버에는 터미널/cmd가 없기 때문입니다.

또한 지속적으로 실행되어야합니다. 사용자가 내 사이트에 액세스 할 때마다 서버에 연결되므로 메시지를 보냅니다.

여러 가지 방법을 시도하지만 어떤 방식으로도 작동하지 않습니다.

+1

여기를보십시오 : http://socketo.me/docs/deploy –

+0

@AlokPatel 그것을 구현하고 내 문제를 해결하려고 시도해 주셔서 감사합니다. 주어진 링크와 관련하여 문제가 있으면 여기에 의견을 말합니다. – Jitendra

+0

물론 문제는 없습니다. –

답변

0

내가 여기 port 2000

backend ws 
    server ws1 my_public_ip:2000 

backend www 
    timeout server 30s 
    server www1 my_public_ip:80 

설정이 파일에서 /etc 디렉토리 에 내가 파일 haproxy.cfg을 confing 만들 haproxy를 설치 한 후 websocket 포트와 port 80 내가 또한 127.0.0.1로 시도 내 아파치 포트 이지만 다음과 같은 수 있습니다 오류

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

이 오류를 건너 후 나는 /etc/ 디렉토리에 supervisor.conf 파일을 만들고 명령 다음은 주어진 링크 에 따라 래칫 프로그램을 추가 내가 파일을

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

을 server.php하는 전체 경로를 준하지만 오류

다음 나에게 준다 5432 의 포트 80 pgSQL의 실행에

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.

내 아파치 실행 지금 내가 종료해야하는 서비스 이해할 수 없습니다.

관련 문제