php 웹소켓 서버 예제

다음은 PHP Websockets에서 첫 번째 Websockets 응용 프로그램을 만드는 간단한 단계는 오랫동안 잘 알려져 왔지만 실제 PHP 응용 프로그램에서는 아직 자주 볼 수 없습니다. 실시간 데이터 피드가 중요하고, 사용자 경험을 개선하며, 프런트 엔드와 백엔드 측 모두에서 더 나은 성능을 제공합니다. 웹 소켓은 대기 시간을 줄이고 HTTP 왕복을 방지하는 데 도움이 됩니다. 작업에서 그것을 볼 수 있는 좋은 도구를 사용 하 여이 크롬 확장 간단한 Websocket 클라이언트. ws://localhost:8080/chat 연결하고 몇 가지 메시지를 보내려고하면 첫 번째 메시지가 사용자 이름으로 할당되고 그 이후의 모든 메시지는 바로 사용자에게 전송됩니다 (그리고 WebSocket에 연결된 다른 사용자) 자바 스크립트에서 쿼리 문자열 my_name을 보냅니다. _is=John에서 서버로 이동합니다. 서버는 특수 태그로 응답을 래핑합니다. 수신되면 브라우저는 “안녕하세요, 존”과 함께 경고 창을 표시합니다. 모든 입력 데이터는 평소와 같이 $_GET(또는 $_REQUEST) 변수를 통해 PHP에서 액세스할 수 있습니다. PHP 스크립트는 서버에서 웹소켓 프레임을 받는 즉시 실행됩니다. PHP 스크립트가 실행된 후 간단한 XML을 stdout으로 출력합니다. 평소와 같이 PHP 스크립트는 실행 후 죽습니다. 평소와 같이 세션을 사용하여 데이터를 저장할 수 있습니다.

Websocket 연결은 열려 있으며, 데이터는 원격 클라이언트에서 수신하거나 필요할 때 원격 클라이언트로 전송될 수 있습니다. 서버는 표준 HTTP 응답을 보냅니다. 이제 연결이 설정됩니다. 1. 클라이언트는 WebSocket 서버 2에 연결하려고합니다. 서버는 클라이언트 3을 인식합니다. 클라이언트가 서버에 등록되지 않은 경우 클라이언트를 추가합니다(헤더 전송을 기반으로 하는 핸드셰이킹 프로세스라고 함) 4. 데이터 웹소켓 라이프사이클_30624_l.png 5를 보내고 받습니다. 닫기 연결 WSPHP는 C++로 작성된 작고 빠른 서버로 개발자에게 Websocket을 통해 클라이언트와 서버 간에 양방향 응용 프로그램을 만들 수 있는 도구를 제공합니다. 편집 : 이 편집은 내 원래 대답 후 몇 년이며, 나는 여전히 작업 솔루션을 가지고 있지만, 그것은 정말 공유 할 준비가되지 않았습니다. 다행히, GitHub에 다른 사람이 광산에 거의 동일한 코드를 가지고 (하지만 훨씬 청소기), 그래서 나는 작업 PHP WebSocket 솔루션에 대한 다음 코드를 사용하는 것이 좋습니다 : https://github.com/ghedipunk/PHP-Websockets/blob/master/websockets.php 당신은 복잡한 예상 무거운 클래스가 포함 된 소스 코드? 실망죄송합니다… 서버를 래핑하는 간단한 클래스는 다음과 같을 수 있습니다.

Sec-WebSocket 버전: 13 Origin: http://example.com 5) 핸드셰이크 후 클라이언트에서 서버로 전송된 왜곡된 텍스트의 무리를 계속 받았는데 데이터가 인코딩되어 마스크해제되어야 한다는 것을 깨달을 때까지 이유를 알 수 없었습니다. 다음 링크는 여기에 많은 도움이: http://srchea.com/blog/2011/12/build-a-real-time-application-using-html5-websockets/ 하지만 여전히 한 가지 더 중요 한 문제가 있다, 즉 메모리 사용.