Creare ed eseguire un progetto Workerman
Cos'è Workerman?
Workerman è una libreria di comunicazione di rete asincrona ad alte prestazioni per PHP, progettata per sviluppare applicazioni di rete ad alta concorrenza e alte prestazioni. Può essere utilizzata per costruire server Web, server WebSocket, server TCP/UDP, ecc., ed è adatta per chat in tempo reale, server di giochi, IoT e altre situazioni. Workerman è caratterizzato dalla sua leggerezza, facilità d'uso ed efficienza, permettendo agli sviluppatori di realizzare facilmente applicazioni di rete complesse.
Caratteristiche principali e vantaggi di Workerman
- Alte prestazioni: basato su eventi e I/O non bloccante asincrono, può gestire un gran numero di connessioni concorrenti.
- Supporto Multi-Protocollo: supporta vari protocolli di rete come HTTP, WebSocket, TCP, e UDP.
- Facile da usare: fornisce API semplici e facili da usare, permettendo agli sviluppatori di iniziare rapidamente.
- Estensione flessibile: consente di implementare più funzionalità tramite plugin e estensioni.
- Forte supporto della community: ha una comunità di sviluppatori attiva e vaste risorse di documentazione.
Workerman può aiutare gli sviluppatori a costruire rapidamente applicazioni di rete ad alte prestazioni, adatte per vari scenari che richiedono un'alta gestione della concorrenza.
Creare ed eseguire un semplice server Web con Workerman
In questo articolo, introdurremo come creare ed eseguire un semplice server Web con Workerman in un ambiente ServBay. Mostreremo come installare Workerman, scrivere il codice di base del server ed eseguirlo.
TIP
ServBay consiglia agli sviluppatori di posizionare i siti web nella cartella /Applications/ServBay/www
per una gestione più agevole.
Installare Workerman
Installare Composer
ServBay include Composer preinstallato, quindi non è necessaria un'installazione separata.
Crea la directory del progetto
Crea una nuova directory di progetto e accedi a essa:
bashcd /Applications/ServBay/www mkdir servbay-workerman-app cd servbay-workerman-app
1
2
3Installa Workerman
Usa Composer per installare Workerman:
bashcomposer require workerman/workerman
1
Scrivere il codice del server Web
Nella directory del progetto, crea un file server.php
e aggiungi il seguente codice:
<?php
require __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
// Crea un'istanza del server Web, ascoltando la porta 8080
$webServer = new Worker('http://0.0.0.0:8080');
// Avvia 4 processi per gestire le richieste
$webServer->count = 4;
// Definisci la logica di gestione delle richieste
$webServer->onMessage = function($connection, $request) {
$connection->send('Hello ServBay!');
};
// Esegui tutte le istanze di Worker
Worker::runAll();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Eseguire il server Web
Nella directory del progetto, esegui il seguente comando per avviare il server Web:
php server.php start
Dopo l'avvio, puoi accedere a http://localhost:8080
nel tuo browser e vedrai la pagina visualizzare Hello ServBay!
.
Creare un server WebSocket con Workerman
Oltre al server Web, Workerman può essere utilizzato per creare server WebSocket. Ecco un esempio semplice di server WebSocket.
Scrivere il codice del server WebSocket
Nella directory del progetto, crea un file
websocket_server.php
e aggiungi il seguente codice:php<?php require __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // Crea un'istanza del server WebSocket, ascoltando la porta 8081 $wsServer = new Worker('websocket://0.0.0.0:8081'); // Avvia 4 processi per gestire le richieste $wsServer->count = 4; // Definisci la logica di gestione delle connessioni $wsServer->onConnect = function($connection) { echo "Nuova connessione\n"; }; // Definisci la logica di gestione dei messaggi $wsServer->onMessage = function($connection, $data) { $connection->send('Ricevuto: ' . $data); }; // Definisci la logica di gestione delle disconnessioni $wsServer->onClose = function($connection) { echo "Connessione chiusa\n"; }; // Esegui tutte le istanze di 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
28Eseguire il server WebSocket
Nella directory del progetto, esegui il seguente comando per avviare il server WebSocket:
bashphp websocket_server.php start
1Dopo l'avvio, puoi utilizzare un client WebSocket (come lo strumento di debug WebSocket del browser) per connetterti a
ws://localhost:8081
e inviare messaggi, e il server ripeterà i messaggi ricevuti.
Creare un server TCP con Workerman
Workerman può anche essere utilizzato per creare server TCP. Ecco un esempio semplice di server TCP.
Scrivere il codice del server TCP
Nella directory del progetto, crea un file
tcp_server.php
e aggiungi il seguente codice:php<?php require __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // Crea un'istanza del server TCP, ascoltando la porta 8082 $tcpServer = new Worker('tcp://0.0.0.0:8082'); // Avvia 4 processi per gestire le richieste $tcpServer->count = 4; // Definisci la logica di gestione delle connessioni $tcpServer->onConnect = function($connection) { echo "Nuova connessione\n"; }; // Definisci la logica di gestione dei messaggi $tcpServer->onMessage = function($connection, $data) { $connection->send('Ricevuto: ' . $data); }; // Definisci la logica di gestione delle disconnessioni $tcpServer->onClose = function($connection) { echo "Connessione chiusa\n"; }; // Esegui tutte le istanze di 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
28Eseguire il server TCP
Nella directory del progetto, esegui il seguente comando per avviare il server TCP:
bashphp tcp_server.php start
1Dopo l'avvio, puoi utilizzare un client TCP (come il comando
telnet
onc
) per connetterti alocalhost:8082
e inviare messaggi, e il server ripeterà i messaggi ricevuti.
Conclusione
Seguendo i passaggi precedenti, sei riuscito a creare ed eseguire un progetto Workerman utilizzando ServBay, usando le funzionalità offerte da Workerman per creare server Web, server WebSocket e server TCP. Le alte prestazioni e la facilità d'uso di Workerman lo rendono ideale per costruire applicazioni di rete ad alta concorrenza e alte prestazioni. Speriamo che questo articolo ti aiuti a iniziare rapidamente con Workerman e a utilizzarlo nei tuoi progetti.