2013-06-15 3 views
6

지금 웹 소켓에 들어가고 있고 온라인 웹 소켓 Pusher (맘에 들지 않았습니다)와 낙서 (놀라운 있지만 일시 중지는 너무 자주 실행되므로 한 사람 만 실행하기 때문에)를 성공적으로 사용하고 있습니다.정확히 PHP Websocket Server를 설정하는 과정은 무엇입니까?

내 로컬 호스트에이 튜토리얼 http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/을 따라했습니다. 잘 작동합니다!

위의 파일에서 server.php를 온라인 웹 호스트/공유 서버에서 websocket 서버로 실행하려면 어떻게 설정해야합니까?

또는 내가 (당신이 권장합니까 내가 설치 정말 전에 VPS를 사용한 적이로서 거기에 웹 소켓 서버! 어떻게 할 수있는 하나 만일 그렇다면,)

매우 감사 VPS를 얻기 위해 필요합니까 내 질문을 읽고 응답하는 데 많은 도움이됩니다. 나는 소켓에 관해서 다른 모든 질문/대답을 읽었지만 위의 질문에 대한 답을 아직 찾을 수 없었다. 잘만되면 나는 그것을 여기에서 발견한다!

답변

4

이것은 까다 롭습니다.

server.php 스크립트를 실행해야하며 종료하지 않아야합니다. 당신이 공유 서버에 SSH 접속이 가능한 경우, 당신은 그들이 스크린 샷에 할 것처럼 그것을 실행할 수하고 nohup 같은 것을 사용하여 백그라운드 작업으로 실행되도록 다음 SSH 연결을 사용하여 (이 호출 후

$ nohup php server.php 
nohup: ignoring input and appending output to `nohup.out' 

을) 종료하면 프로세스가 계속 실행됩니다. 스크립트가 인쇄하는 모든 내용은 언제든지 읽을 수있는 nohup.out에 저장됩니다.

SSH 액세스 권한이없고 실제로 PHP 스크립트를 실행하는 유일한 방법은 페이지 요청의 결과로 Apache를 사용하는 경우 브라우저를 사용하여 해당 페이지로 이동하면됩니다. 브라우저. 하지만 언젠가는 시간이 초과 될 것이고 당신과 아파치 사이의 연결이 닫히고 실질적으로 server.php 스크립트 실행이 멈출 것입니다.

이전의 경우 많은 공유 호스트가 스크립트를 무기한 실행하도록 허용하지 않습니다. 이 라인은 server.php에가 있다는 것을 알 수 있습니다 :

set_time_limit(0); 

이 시간 제한이 없다는 것을 PHP를 알려줍니다. 호스트가 PHP를 safe mode (많은 경우)에서 실행하면 set_time_limit을 사용할 수없고 제한 시간은 30 초 또는 그 이하일 수 있습니다.

그래, VPS가 가장 좋은 방법 일 것입니다. 자, 나 자신을 소유하고 있지 않다. 그리고 나는 좋은/나쁜 가격이 무엇인지 모른다. 그러나 나는 HostGator이 좋다고 말한다.

+0

완벽한 답변, 정확히 내가 필요한 것! 고맙습니다. :) –

+0

서버 응용 프로그램과 관련하여 커뮤니티가 PHP에 그다지 중요하지 않습니다. 어쨌든 VPS를 구입하려면 [socket.io] (http://socket.io/) (Node.js) 또는 [Autobahn] (http://autobahn.ws/)을 살펴보십시오.) (파이썬). 그것들은 잘 작동하는 것으로 입증 된 통합 솔루션 (서버와 클라이언트 측면에서 일치하는 라이브러리)입니다. 물론 최소한의 PHP 서버로 시작하여 프로토콜과 "저급"측면을 이해할 수 있습니다. – eepp

+0

제가 알고있는 최고의 PHP 솔루션은 [래칫] (http://socketo.me)입니다. 다른 언어에 대한 여러 가지 자체 호스팅 솔루션이 있습니다 ([실시간 웹 기술 가이드] (http://www.leggetter.co.uk/real-time-web-technologies-guide) 참조). 일반적으로 PHP의 경우 호스팅 솔루션을 사용하는 것이 좋습니다. – leggetter