Maison  >  Article  >  cadre php  >  Pourquoi devons-nous créer un protocole dans WorkerMan ?

Pourquoi devons-nous créer un protocole dans WorkerMan ?

(*-*)浩
(*-*)浩original
2020-01-02 17:49:541890parcourir

Pourquoi devons-nous créer un protocole dans WorkerMan ?

Étant donné que TCP est basé sur des flux, les données de requête envoyées par le client circulent dans le serveur comme de l'eau. Une fois que le serveur a détecté l'arrivée des données, il doit vérifier si les données sont complètes. Parce que seule une partie des données d'une requête peut atteindre le serveur, ou même plusieurs requêtes peuvent atteindre le serveur ensemble.

Comment déterminer si toutes les demandes sont arrivées ou séparer les demandes de plusieurs demandes connectées nécessite un ensemble de protocoles de communication.

Pourquoi devons-nous conclure un accord dans WorkerMan ?

Le développement PHP traditionnel est basé sur le Web, essentiellement le protocole HTTP. L'analyse et le traitement du protocole HTTP sont uniquement effectués par le serveur Web, les développeurs ne se soucient donc pas du protocole. . (Apprentissage recommandé : Tutoriel Workerman )

Cependant, lorsque nous devons développer sur la base du protocole non -HTTP, les développeurs doivent tenir compte de l'accord.

Protocoles déjà pris en charge par WorkerMan

WorkerMan prend actuellement en charge HTTP, websocket, le protocole texte (voir la description en annexe), le protocole frame (voir la description en annexe), le protocole ws (voir description en annexe), vous pouvez l'utiliser directement lorsque vous avez besoin de communiquer sur la base de ces protocoles. Pour l'utiliser, précisez le protocole lors de l'initialisation du Worker, tel que

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');
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn