Créer et exécuter un projet Workerman
Qu'est-ce que Workerman ?
Workerman est une bibliothèque de communication réseau asynchrone PHP haute performance, conçue pour développer des applications réseau haute concurrence et haute performance. Il peut être utilisé pour construire des serveurs Web, des serveurs WebSocket, des serveurs TCP/UDP, etc., adaptés à des scénarios comme le chat en temps réel, les serveurs de jeux, l'Internet des objets et plus encore. Workerman possède des caractéristiques telles que légèreté, facilité d'utilisation, efficacité, permettant aux développeurs de réaliser facilement des applications réseau complexes.
Principales caractéristiques et avantages de Workerman
- Haute performance : Basé sur la conduite par événements et l'I/O asynchrone non-bloquant, capable de gérer un grand nombre de connexions simultanées.
- Support multi-protocole : Supporte les protocoles réseau HTTP, WebSocket, TCP, UDP, etc.
- Facilité d'utilisation : Fournit une API simple et facile à utiliser, permettant aux développeurs de se lancer rapidement.
- Extensibilité flexible : Peut implémenter plus de fonctionnalités via des plugins et des extensions.
- Support communautaire puissant : Possède une communauté de développeurs active et des ressources documentaires riches.
Workerman peut aider les développeurs à créer rapidement des applications réseau haute performance, adapté à divers scénarios nécessitant un traitement de haute concurrence.
Créer et exécuter un simple serveur Web avec Workerman
Dans cet article, nous allons montrer comment créer et exécuter un simple serveur Web avec Workerman dans un environnement ServBay. Nous allons montrer comment installer Workerman, écrire le code de base du serveur et exécuter le serveur.
TIP
ServBay recommande aux développeurs de placer le site Web dans le répertoire /Applications/ServBay/www
pour une gestion plus facile.
Installer Workerman
Installer Composer
ServBay inclut déjà Composer d'origine, il n'est pas nécessaire de l'installer séparément.
Créer un répertoire de projet
Créez un nouveau répertoire de projet et accédez à ce répertoire :
bashcd /Applications/ServBay/www mkdir servbay-workerman-app cd servbay-workerman-app
1
2
3Installer Workerman
Utilisez Composer pour installer Workerman :
bashcomposer require workerman/workerman
1
Écriture du code du serveur Web
Créez un fichier server.php
dans le répertoire du projet et ajoutez le code suivant :
<?php
require __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
// Créer une instance de serveur Web, écouter le port 8080
$webServer = new Worker('http://0.0.0.0:8080');
// Lancer 4 processus pour traiter les demandes
$webServer->count = 4;
// Définir la logique de traitement des demandes
$webServer->onMessage = function($connection, $request) {
$connection->send('Hello ServBay!');
};
// Exécuter toutes les instances Worker
Worker::runAll();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Exécuter le serveur Web
Exécutez la commande suivante dans le répertoire du projet pour lancer le serveur Web :
php server.php start
Après le lancement, vous pouvez accéder à http://localhost:8080
dans votre navigateur, et vous verrez la page afficher Hello ServBay!
.
Créer un serveur WebSocket avec Workerman
En plus des serveurs Web, Workerman peut également être utilisé pour créer des serveurs WebSocket. Voici un exemple simple de serveur WebSocket.
Écriture du code du serveur WebSocket
Créez un fichier
websocket_server.php
dans le répertoire du projet et ajoutez le code suivant :php<?php require __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // Créer une instance de serveur WebSocket, écouter le port 8081 $wsServer = new Worker('websocket://0.0.0.0:8081'); // Lancer 4 processus pour traiter les demandes $wsServer->count = 4; // Définir la logique de traitement lors de l'établissement de la connexion $wsServer->onConnect = function($connection) { echo "New connection\n"; }; // Définir la logique de traitement lors de la réception des messages $wsServer->onMessage = function($connection, $data) { $connection->send('Received: ' . $data); }; // Définir la logique de traitement lors de la fermeture de la connexion $wsServer->onClose = function($connection) { echo "Connection closed\n"; }; // Exécuter toutes les instances Worker Worker::runAll();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28Exécuter le serveur WebSocket
Exécutez la commande suivante dans le répertoire du projet pour lancer le serveur WebSocket :
bashphp websocket_server.php start
1Après le lancement, vous pouvez utiliser un client WebSocket (comme un outil de débogage WebSocket dans votre navigateur) pour vous connecter à
ws://localhost:8081
, envoyer des messages, et le serveur fera écho aux messages reçus.
Créer un serveur TCP avec Workerman
Workerman peut également être utilisé pour créer des serveurs TCP. Voici un exemple simple de serveur TCP.
Écriture du code du serveur TCP
Créez un fichier
tcp_server.php
dans le répertoire du projet et ajoutez le code suivant :php<?php require __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // Créer une instance de serveur TCP, écouter le port 8082 $tcpServer = new Worker('tcp://0.0.0.0:8082'); // Lancer 4 processus pour traiter les demandes $tcpServer->count = 4; // Définir la logique de traitement lors de l'établissement de la connexion $tcpServer->onConnect = function($connection) { echo "New connection\n"; }; // Définir la logique de traitement lors de la réception des messages $tcpServer->onMessage = function($connection, $data) { $connection->send('Received: ' . $data); }; // Définir la logique de traitement lors de la fermeture de la connexion $tcpServer->onClose = function($connection) { echo "Connection closed\n"; }; // Exécuter toutes les instances Worker Worker::runAll();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28Exécuter le serveur TCP
Exécutez la commande suivante dans le répertoire du projet pour lancer le serveur TCP :
bashphp tcp_server.php start
1Après le lancement, vous pouvez utiliser un client TCP (comme la commande
telnet
ounc
) pour vous connecter àlocalhost:8082
, envoyer des messages, et le serveur fera écho aux messages reçus.
Conclusion
Grâce aux étapes ci-dessus, vous avez réussi à créer et exécuter un projet Workerman en utilisant ServBay, et à utiliser les fonctionnalités de Workerman pour créer un serveur Web, un serveur WebSocket et un serveur TCP. La haute performance et la facilité d'utilisation de Workerman le rendent très adapté à la construction d'applications réseau haute concurrence et haute performance. Nous espérons que cet article vous aidera à prendre rapidement en main Workerman et à l'utiliser dans vos projets.