php websocket 예제

이 자습서에서는 WebSocket 및 PHP 소켓 프로그래밍을 사용 하 여 간단한 채팅 응용 프로그램을 만들려고 합니다. WebSocket은 PHP 채팅 서버에서 메시지를 보내거나 받을 수 있는 브리지를 만드는 데 사용됩니다. 웹 세계에서는 일반적으로 HTTP 요청 메서드를 사용하여 클라이언트와 서버 측 간에 통신합니다. 이 채팅 예제에서는 소켓을 사용하여 서버와 통신합니다. 이 페이지의 핵심 부분은 브라우저에서 websocket 개체를 만들고 서버에 연결하는 새 Websocket 명령을 사용하여 수행되는 웹 소켓 연결입니다. 선택적으로 websocket 통신을 위한 프로토콜 유형을 두 번째 매개 변수로 나열할 수 있습니다. 웹 소켓을 만든 후 통신할 서버(및 선택적으로 포트)를 지정합니다. 웹소켓에는 URL ws://servername(기본값으로 포트 80) 또는 wss://servername(보안 HTTPS 소켓)에 대한 두 개의 프로토콜이 있습니다. 이 모든 것은 init() 함수에서 발생합니다. 이제 우리는 작업 웹 소켓을 가지고, 문제는 우리가 서버에 SSH 또는 터미널 세션을 닫으면 소켓도 중지합니다. 이 방법을 해결하려면 WebSocket을 서비스로 전환할 수 있습니다.

서버에서 /etc/init으로 이동하여 다음 내용으로 chatSocket.conf라는 파일을 만들면 먼저 웹 소켓이 도메인 간 통신을 수행 할 수 있으며 (교차 원본 공유) CORS 방법론을 따르며 SOP (동일한 Origin)에 의해 제한되지 않습니다. 정책)과 같은 편조 자바 스크립트는 브라우저 내부에 있습니다. 이 웹 소켓 때문에 물론 공격의 크로스 도메인 유형의 잠재력을 가지고, 나는 웹 소켓 보안에 대한 자세한 설명으로 이동하지 않을거야 동안 (이는 현대 인터넷 보안의 하위 집합입니다) , 서버 작성자 (사용자)에 그것의 최대 말을 충분 클라이언트 원본을 확인하고 유효성을 검사하고 프레임이 변조되지 않았는지 확인합니다. 나는 잠시 동안 당신의 신발에 있었고 마침내 node.js를 사용하여 끝났습니다. 따라서 php 백 엔드는 http를 통해 노드 웹 서버에 요청을 제출한 다음 웹 소켓으로 브로드캐스트 할 수 있습니다. 매우 효과적인 방법. 먼저 동일한 도메인에서 이 서비스를 제공하는지 확인하십시오 (ajax는 교차 도메인이 아님), 두 번째는 소켓이 브라우저를 사용하지 않고 지정한 포트를 먼저 실행하고 있는지 확인하십시오 (telnet 443 (443 대신 포트를 배치)와 같은 soemthing을 사용하여 작동하는지 확인하십시오.

Dark Bugsyphp websocket 예제