2012-07-09 2 views
11

HTML5 웹 소켓이 PHP와 잘 작동하지 않는다는 것을 인터넷상의 여러 곳에서 언급 한 것을 보았습니다. PHP는 자연이 그것들과 함께 사용하기에 적합하다는 것을 알았습니다. 다른 한편으로는 웹 사이트에서 PHP를 사용하는 방법에 대한 자습서가 여러 개 있습니다. http://code.google.com/p/phpwebsocket/웹 소켓은 PHP와 함께 사용하기에 적합합니까?

그렇다면 누구나 PHP에서 웹 소켓을 사용하는 데 필요한 확실한 정보가 있습니다. PHP와 함께 사용할 수 있습니까? Java 또는 Python과 반대로 PHP에서 사용하는 데있어 장점/단점은 무엇입니까? 왜 사람들이 잘 작동하지 않는다고 말하는 수많은 사람들을 읽어야합니까?

+2

NodeJS 및 socket.io에 대해 알고 싶습니다. 귀하의 프로젝트에 따라 다르지만 필요한 것을 제공 할 수 있습니다 : [nodejs.org] (http://nodejs.org) [socket.io] (http://socket.io) – imperium2335

답변

7

문제는 WebSocket은 각각 이벤트 구동 형 연결을 여러 개 유지하는 장기 실행 스레드/프로세스에 대해 설계된 반면 PHP (및 아파치 코호트)는 단명 한 단일 프로세스 절차 패러다임 (예 : max_execution_time is commonly set to 30 seconds, 세션은 단일 스레드입니다).

PHP에서 WebSockets 서버 구현을 작성할 수 없다는 것은 아닙니다. 적어도 하나의 프로젝트가 있다는 것을 알고 있습니다 done exactly this (하지만이 예제조차도 mod_php이 아닌 명령 행에서 실행됩니다). 그러나 WebSocket의 PHP 구현은 PHP가 가장 일반적으로 사용되는 저렴한/공유 호스팅의 설정과 호환되지 않을 수 있습니다.

PHP에서는 가능하지만 아파치에서 별도의 서버 프로세스를 실행해야하며, 별도의 서버 프로세스를 허용하는 일종의 호스팅을 사용하는 경우 WebSocket을 작성하는 것이 더 쉽습니다. 이벤트 중심 프로그래밍을 위해 설계된 코드

수십만 개의 동시 연결을 제공하지 않으려면 PHP 백엔드와 함께 AJAX와 SSE의 조합을 사용하는 것이 더 낫습니다.

+0

php-fpm은 어떻습니까? 그리고 JIT 기술로 php7? 이 답변은 업데이트해야합니다. – LeonanCarvalho

0

최근에 phpwebsocket을 시도했는데 현재 (rev 5.4 및 chrome) 코드가 rev에 존재하지 않는 핸드 셰이크의 secondkey를 참조합니다. 13 of websocket protocol 나는 무엇이 문제인지 이해하기 위해 RFC를 읽을 시간이 없다.

이 솔루션은 긴 폴링을 사용하는 AJAX보다 더 우아하고 반응이 좋지만 웹 소켓이 안정적이지 않은 것으로 확신합니다. 지금 w3c가 안정적임을 발표하는 것이 더 재미있을 것이라고 생각합니다.

관련 문제