Erstellen und Ausführen eines Workerman-Projekts
Was ist Workerman?
Workerman ist eine leistungsstarke, asynchrone Netzwerkkommunikationsbibliothek für PHP, die speziell für die Entwicklung von hochkonkurrenten und leistungsstarken Netzwerkapplikationen konzipiert wurde. Sie kann verwendet werden, um Webserver, WebSocket-Server, TCP/UDP-Server usw. zu bauen, und ist geeignet für Echtzeit-Chat, Spiele-Server, Internet der Dinge (IoT) und andere Szenarien. Workerman zeichnet sich durch Leichtgewichtigkeit, Benutzerfreundlichkeit und Effizienz aus, was es Entwicklern ermöglicht, komplexe Netzwerkapplikationen einfach zu realisieren.
Hauptmerkmale und Vorteile von Workerman
- Hohe Leistung: Basierend auf ereignisgesteuertem und asynchronem, nicht blockierendem I/O, kann es eine große Anzahl gleichzeitiger Verbindungen verarbeiten.
- Unterstützung mehrerer Protokolle: Unterstützt HTTP, WebSocket, TCP, UDP und andere Netzwerkprotokolle.
- Benutzerfreundlich: Bietet einfache und leicht zu bedienende APIs, die es Entwicklern ermöglichen, schnell loszulegen.
- Flexible Erweiterbarkeit: Zusätzliche Funktionen können durch Plugins und Erweiterungen implementiert werden.
- Starke Gemeinschaftsunterstützung: Verfügt über eine aktive Entwicklergemeinde und eine Fülle von Dokumentationsressourcen.
Workerman hilft Entwicklern, leistungsstarke Netzwerkapplikationen schnell zu erstellen und ist für verschiedene Szenarien geeignet, die hohe Anforderungen an die gleichzeitige Verarbeitung stellen.
Erstellen und Ausführen eines einfachen Webservers mit Workerman
In diesem Artikel zeigen wir Ihnen, wie Sie in der ServBay-Umgebung mit Workerman einen einfachen Webserver erstellen und ausführen. Wir demonstrieren, wie Sie Workerman installieren, grundlegenden Servercode schreiben und den Server ausführen können.
TIP
ServBay empfiehlt Entwicklern, Websites im Verzeichnis /Applications/ServBay/www
abzulegen, um die Verwaltung zu erleichtern.
Workerman Installation
Composer installieren
ServBay wird mit vorinstalliertem Composer ausgeliefert, sodass eine separate Installation nicht erforderlich ist.
Projektverzeichnis erstellen
Erstellen Sie ein neues Projektverzeichnis und wechseln Sie in dieses Verzeichnis:
bashcd /Applications/ServBay/www mkdir servbay-workerman-app cd servbay-workerman-app
1
2
3Workerman installieren
Verwenden Sie Composer, um Workerman zu installieren:
bashcomposer require workerman/workerman
1
Webserver-Code schreiben
Erstellen Sie eine Datei namens server.php
im Projektverzeichnis und fügen Sie den folgenden Code ein:
<?php
require __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
// Erstellen einer Webserver-Instanz, die auf Port 8080 hört
$webServer = new Worker('http://0.0.0.0:8080');
// Starten von 4 Prozessen zur Bearbeitung der Anfragen
$webServer->count = 4;
// Definieren der Anfragelogik
$webServer->onMessage = function($connection, $request) {
$connection->send('Hello ServBay!');
};
// Ausführen aller Worker-Instanzen
Worker::runAll();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Webserver ausführen
Führen Sie im Projektverzeichnis den folgenden Befehl aus, um den Webserver zu starten:
php server.php start
Nach dem Start können Sie im Browser http://localhost:8080
aufrufen. Sie werden sehen, dass die Seite Hello ServBay!
ausgibt.
Erstellen eines WebSocket-Servers mit Workerman
Neben Webservern kann Workerman auch verwendet werden, um WebSocket-Server zu erstellen. Hier ist ein einfaches Beispiel für einen WebSocket-Server.
WebSocket-Server-Code schreiben
Erstellen Sie eine Datei namens
websocket_server.php
im Projektverzeichnis und fügen Sie den folgenden Code ein:php<?php require __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // Erstellen einer WebSocket-Server-Instanz, die auf Port 8081 hört $wsServer = new Worker('websocket://0.0.0.0:8081'); // Starten von 4 Prozessen zur Bearbeitung der Verbindungen $wsServer->count = 4; // Definieren der Logik, wenn eine Verbindung hergestellt wird $wsServer->onConnect = function($connection) { echo "Neue Verbindung\n"; }; // Definieren der Logik beim Empfangen von Nachrichten $wsServer->onMessage = function($connection, $data) { $connection->send('Empfangen: ' . $data); }; // Definieren der Logik, wenn eine Verbindung geschlossen wird $wsServer->onClose = function($connection) { echo "Verbindung geschlossen\n"; }; // Ausführen aller Worker-Instanzen 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
28WebSocket-Server ausführen
Führen Sie im Projektverzeichnis den folgenden Befehl aus, um den WebSocket-Server zu starten:
bashphp websocket_server.php start
1Nach dem Start können Sie einen WebSocket-Client (wie das WebSocket-Debugging-Tool im Browser) verwenden, um eine Verbindung zu
ws://localhost:8081
herzustellen und Nachrichten zu senden. Der Server wird die empfangenen Nachrichten zurücksenden.
Erstellen eines TCP-Servers mit Workerman
Workerman kann auch verwendet werden, um TCP-Server zu erstellen. Hier ist ein einfaches Beispiel für einen TCP-Server.
TCP-Server-Code schreiben
Erstellen Sie eine Datei namens
tcp_server.php
im Projektverzeichnis und fügen Sie den folgenden Code ein:php<?php require __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // Erstellen einer TCP-Server-Instanz, die auf Port 8082 hört $tcpServer = new Worker('tcp://0.0.0.0:8082'); // Starten von 4 Prozessen zur Bearbeitung der Verbindungen $tcpServer->count = 4; // Definieren der Logik, wenn eine Verbindung hergestellt wird $tcpServer->onConnect = function($connection) { echo "Neue Verbindung\n"; }; // Definieren der Logik beim Empfangen von Nachrichten $tcpServer->onMessage = function($connection, $data) { $connection->send('Empfangen: ' . $data); }; // Definieren der Logik, wenn eine Verbindung geschlossen wird $tcpServer->onClose = function($connection) { echo "Verbindung geschlossen\n"; }; // Ausführen aller Worker-Instanzen 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
28TCP-Server ausführen
Führen Sie im Projektverzeichnis den folgenden Befehl aus, um den TCP-Server zu starten:
bashphp tcp_server.php start
1Nach dem Start können Sie einen TCP-Client (wie den
telnet
odernc
Befehl) verwenden, um eine Verbindung zulocalhost:8082
herzustellen und Nachrichten zu senden. Der Server wird die empfangenen Nachrichten zurücksenden.
Zusammenfassung
Durch die obigen Schritte haben Sie erfolgreich ein Workerman-Projekt in ServBay erstellt und ausgeführt und die Funktionen von Workerman genutzt, um einen Webserver, WebSocket-Server und TCP-Server zu erstellen. Die hohe Leistung und Benutzerfreundlichkeit von Workerman machen es sehr geeignet für den Aufbau hochkonkurrenter und leistungsstarker Netzwerkapplikationen. Wir hoffen, dass Ihnen dieser Artikel hilft, Workerman schnell in den Griff zu bekommen und es in Ihren Projekten einzusetzen.