TCP는 스트림 기반이므로 클라이언트가 보낸 요청 데이터가 물처럼 서버로 흘러 들어갑니다. 서버는 데이터 도착을 감지한 후 여부를 확인해야 합니다. 한 요청의 데이터 중 일부만 서버에 도달할 수도 있고 여러 요청이 함께 서버에 도달할 수도 있기 때문에 데이터는 완전합니다.
모든 요청이 도착했는지 확인하거나 연결된 여러 요청에서 요청을 분리하는 방법에는 일련의 통신 프로토콜이 필요합니다.
왜 워커맨에서 합의를 해야 할까요?
전통적인 PHP 개발은 웹, 기본적으로 HTTP 프로토콜을 기반으로 합니다. HTTP 프로토콜의 구문 분석 및 처리는 WebServer에서 단독으로 수행되므로 개발자는 신경 쓰지 않습니다. 합의가 중요합니다. (권장 학습: workerman tutorial )
그러나 HTTP가 아닌 프로토콜을 기반으로 개발해야 하는 경우 개발자는 프로토콜을 고려해야 합니다.
WorkerMan에서 이미 지원되는 프로토콜
WorkerMan은 현재 HTTP, 웹소켓, 텍스트 프로토콜(부록 설명 참조), 프레임 프로토콜(부록 설명 참조)을 지원합니다. ), ws 프로토콜(부록 설명 참조)을 사용하려면 이러한 프로토콜을 기반으로 통신해야 하는 경우
use Workerman\Worker; // websocket://0.0.0.0:2345 表明用websocket协议监听2345端口 $websocket_worker = new Worker('websocket://0.0.0.0:2345'); // text协议 $text_worker = new Worker('text://0.0.0.0:2346'); // frame协议 $frame_worker = new Worker('frame://0.0.0.0:2347'); // tcp Worker,直接基于socket传输,不使用任何应用层协议 $tcp_worker = new Worker('tcp://0.0.0.0:2348'); // udp Worker,不使用任何应用层协议 $udp_worker = new Worker('udp://0.0.0.0:2349'); // unix domain Worker,不使用任何应用层协议 $unix_worker = new Worker('unix:///tmp/wm.sock');
위 내용은 WorkerMan에서 프로토콜을 만들어야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!