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