Maison > cadre php > Workerman > Comment créer un serveur TCP simple à l'aide de Workerman?

Comment créer un serveur TCP simple à l'aide de Workerman?

百草
Libérer: 2025-03-11 14:58:17
original
632 Les gens l'ont consulté

Comment créer un serveur TCP simple à l'aide de Workerman?

La création d'un serveur TCP simple avec Workerman est simple. Tout d'abord, assurez-vous que Workerman soit installé. Vous pouvez généralement l'installer via Composer: Composer Exiger Workerman / Workerman . Ensuite, créez un nouveau fichier PHP (par exemple, server.php ). Le code suivant établit un serveur TCP de base qui écoute le port 2345:

 <code class="php"> & lt ;? php require_once __dir__. «/ vendeur/autoload.php»; Utiliser Workerman \ Worker; $ worker = nouveau travailleur (& quot; tcp: //0.0.0.0: 2345 & quot;); $ worker- & gt; onConnect = function ($ connection) {echo & quot; nouvelle connexion à partir de {$ connection- & gt; getRemoteip ()}: {$ connection- & gt; getRemotePort ()} \ n & quot ;; }; $ worker- & gt; onMessage = function ($ connection, $ data) {// écho les données au client $ connection- & gt; send ($ data); }; $ worker- & gt; onclose = function ($ connection) {echo & quot; connexion fermé: {$ connection- & gt; getRemoteip ()}: {$ connection- & gt; getRemotePort ()} \ n & quot ;; }; Worker :: runall (); </code> 
Copier après la connexion

Ce code utilise la classe workerman \ worker pour créer un travailleur TCP. tcp: //0.0.0.0: 2345 spécifie l'adresse et le port d'écoute. Le onConnect , onMessage et onclose Les rappels gèrent respectivement les événements de connexion, les données entrantes et les fermetures de connexions. Worker :: runall () Démarrer le serveur. N'oubliez pas d'exécuter ce script à partir de votre terminal à l'aide de php server.php .

peut-il gérer simultanément plusieurs connexions client TCP?

Oui, Workerman est conçu pour gérer plusieurs connexions client TCP simultanément. Il utilise un modèle multi-processus ou multi-thread (selon votre configuration) pour gérer efficacement de nombreuses connexions simultanées. La clé de cette manipulation simultanée réside dans l'architecture axée sur les événements de Workerman. Lorsqu'une connexion arrive ou que les données sont reçues, Workerman déclenche les rappels correspondants ( onConnect , onMessage , etc.) sans bloquer d'autres connexions. Cela lui permet de gérer de nombreux clients sans dégradation des performances. Le nombre de connexions simultanées qu'il peut gérer dépend des ressources de votre serveur (CPU, mémoire, bande passante réseau). Vous pouvez ajuster le nombre de processus de travail pour optimiser vos besoins spécifiques via les options de configuration de Workerman.

Quels sont les paramètres de configuration de base pour un serveur TCP Workerman?

Workerman propose plusieurs options de configuration pour personnaliser votre serveur TCP. Ceux-ci sont généralement définis dans l'objet Worker . Voici quelques paramètres de base:

  • wearch- & gt; count : spécifie le nombre de processus de travail. L'augmentation de ce nombre peut améliorer les performances avec plus de clients, mais trop de processus peuvent surcharger le système. La valeur par défaut est généralement 1.
  • worker- & gt; name : attribue un nom au travailleur pour une meilleure identification dans les journaux et la surveillance.
  • Worker- & gt; Reuseport : permettent la réutilisation du port, permettant aux serveurs multiples d'écouter le même port. Utile dans certains scénarios mais nécessite une attention particulière.
  • Worker- & gt; Transport : spécifie le protocole de couche de transport (par exemple, 'TCP', 'UDP'). La valeur par défaut est 'TCP'.
  • worker- & gt; ssl : Active le cryptage SSL / TLS. Nécessite la configuration des certificats SSL.

Vous pouvez modifier ces paramètres directement dans votre fichier server.php avant Worker :: runall () . Par exemple:

 <code class="php"> $ worker = nouveau travailleur (& quot; tcp: //0.0.0.0: 2345 & quot;); $ worker- & gt; count = 4; // Utiliser 4 processus de travail $ wearch- & gt; name = & quot; mytcpServer & quot ;; // ... Autres paramètres ... </code> 
Copier après la connexion

Comment envoyer et recevoir des données à l'aide d'un serveur TCP Workerman?

Envoi et recevant des données est géré via l'objet $ connection dans l'objet onmesage . Le serveur reçoit des données via le paramètre $ data de la fonction onMessage . Pour renvoyer les données au client, utilisez la méthode $ connection- & gt; send () .

recevant des données:

Le paramètre $ data dans le onMessage Le rappel contient les données reçues du client. Vous pouvez traiter ces données au besoin. Par exemple:

 <code class="php"> $ worker- & gt; onMessage = function ($ connection, $ data) {$ reçatData = Trim ($ data); // Supprimer l'écho de l'espace de leading / de la fuite "reçue:" . $ reçagedata. & quot; \ n & quot ;; // traite les données reçues ... $ réponse = & quot; serveur reçu: & quot; . $ reçagedata; $ Connection- & gt; Send ($ Response); }; </code> 
Copier après la connexion

Envoi de données:

Pour renvoyer des données au client, utilisez la $ connection- & gt; Send () Méthode:

 <code class="php"> $ wearch- & gt; onmessage = function ($ wect) {//! du serveur! "); }; </code> 
Copier après la connexion

N'oubliez pas de gérer les erreurs potentielles (par exemple, défaillances de connexion) de manière appropriée dans vos rappels. Cela fournit un cadre de base pour l'envoi et la réception de données dans votre serveur TCP Workerman. La gestion des données plus complexe peut impliquer la sérialisation ou d'autres techniques de structuration de données.

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 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