Maison > cadre php > Swoole > le corps du texte

Swoole prend-il en charge plusieurs ports et différents protocoles ?

(*-*)浩
Libérer: 2019-12-06 14:14:48
original
2451 Les gens l'ont consulté

Swoole prend-il en charge plusieurs ports et différents protocoles ?

Swoole-1.8.0 ajoute la prise en charge des protocoles mixtes multi-ports. Le serveur peut écouter plusieurs ports, et chaque port peut être défini avec différentes méthodes de traitement de protocole (définies) et fonctions de rappel (activées). Le chiffrement du transport SSL/TLS peut également être activé uniquement pour des ports spécifiques.                                                                                                                                                                                                              est utilisée. Le type d'objet renvoyé par le port d'écoute est swoole_server_port

<.> L'objet swoole_server_port du port d'écoute, vous pouvez appeler les méthodes set et on. La méthode d'utilisation est exactement la même que swoole_server

Le port d'écoute ne peut définir que quelques options spécifiques, et ne peut définir que les options spécifiques. fonctions de rappel d'événements liées à l'envoi et à la réception de données

Les fonctions de rappel des différents ports d'écoute sont toujours les mêmes Worker Exécuté dans l'espace de processus

Le serveur principal est WebSocket ou le protocole Http Le nouveau surveillé. Le port TCP héritera par défaut des paramètres de protocole du serveur principal. La méthode set doit être appelée séparément pour définir un nouveau protocole afin d'activer le nouveau protocole

Écouter le nouveau port

$port1 = $server->listen("127.0.0.1", 9501, SWOOLE_SOCK_TCP);
$port2 = $server->listen("127.0.0.1", 9502, SWOOLE_SOCK_UDP);
$port3 = $server->listen("127.0.0.1", 9503, SWOOLE_SOCK_TCP | SWOOLE_SSL);
Copier après la connexion

Définir le protocole réseau

$port1->set([
    &#39;open_length_check&#39; => true,
    &#39;package_length_type&#39; => &#39;N&#39;,
    &#39;package_length_offset&#39; => 0,
    &#39;package_max_length&#39; => 800000,]
);
$port3->set([
    &#39;open_eof_split&#39; => true,
    &#39;package_eof&#39; => "\r\n",
    &#39;ssl_cert_file&#39; => &#39;ssl.cert&#39;,
    &#39;ssl_key_file&#39; => &#39;ssl.key&#39;,]
);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal