Da TCP auf Streams basiert, fließen die vom Client gesendeten Anforderungsdaten wie Wasser in den Server. Nachdem der Server den Eingang von Daten erkannt hat, sollte er prüfen, ob die Daten vollständig sind Da möglicherweise nur ein Teil der Daten einer Anfrage den Server erreicht, oder sogar mehrere Anfragen zusammen den Server erreichen.
Um festzustellen, ob alle Anfragen angekommen sind, oder um Anfragen von mehreren verbundenen Anfragen zu trennen, sind eine Reihe von Kommunikationsprotokollen erforderlich.
Warum müssen wir in WorkerMan eine Vereinbarung treffen?
Traditionelle PHP-Entwicklung basiert auf dem Web, im Wesentlichen dem HTTP-Protokoll. Das Parsen und Verarbeiten des HTTP-Protokolls wird ausschließlich vom Webserver durchgeführt, sodass sich Entwickler nicht um das Protokoll kümmern. . (Empfohlenes Lernen:
Protokolle, die bereits von WorkerMan unterstützt werden
WorkerMan unterstützt derzeit HTTP, Websocket, Textprotokoll (siehe Anhangbeschreibung), Frameprotokoll (siehe Anhangbeschreibung), WS-Protokoll (siehe Anhangbeschreibung), können Sie es direkt verwenden, wenn Sie basierend auf diesen Protokollen kommunizieren müssen. Um es zu verwenden, geben Sie das Protokoll bei der Initialisierung des Workers an, z. B.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');
Das obige ist der detaillierte Inhalt vonWarum müssen wir in WorkerMan ein Protokoll erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!