Swoole ist ein Netzwerkkommunikations-Framework, das auf der PHP-Sprache basiert. Es kann asynchrone, gleichzeitige, leistungsstarke HTTP-, WebSocket- und TCP/UDP-Protokollserver und -Clients bereitstellen. Es ist von großem Nutzen bei der Entwicklung von Webdiensten und Netzwerkkommunikationsanwendungen. wird in einigen Internetunternehmen häufig verwendet.
In diesem Artikel wird die Verwendung von Swoole Call vorgestellt.
1. Installieren Sie Swoole
Bevor Sie Swoole verwenden, müssen Sie es zuerst installieren. Sie können Composer verwenden oder es manuell herunterladen und in der PHP-Erweiterung installieren. Die Schritte sind wie folgt:
Geben Sie den Befehl in die Befehlszeile ein: Composer benötigt swoole/swoole, um die neueste Version von zu installieren Swoole.
Laden Sie das komprimierte Quellcodepaket von Swoole auf der offiziellen Website von Swoole herunter (https://www.swoole.com/) Führen Sie nach der Dekomprimierung den folgenden Befehl in der Befehlszeile aus, um ihn zu installieren:
$ phpize $ ./configure $ make && make install
2. Rufen Sie Swoole an
Bevor Sie den Swoole-Dienst starten, müssen Sie den Dienst zuerst erstellen. Sie können HTTP-, WebSocket-, TCP/UDP- und andere Arten von Diensten erstellen Die Rückruffunktion wird vom Server empfangen. Verarbeitungslogik nach Clientanfrage, z. B. Beantworten von Anfragen, Verarbeiten von Daten usw. Im HTTP-Dienst können Sie die folgenden Rückruffunktionen verwenden:
$serv = new Swoole\Http\Server("127.0.0.1", 9501);
(2)onRequest
Führen Sie diese Funktion aus, wenn eine HTTP-Anfrage empfangen wird.
$serv->on('start', function ($server) { echo "Swoole http server is started at http://127.0.0.1:9501\n"; });
(3)onClose
Führen Sie diese Funktion aus, wenn die Verbindung geschlossen ist.
$serv->on('request', function ($request, $response) { $response->header("Content-Type", "text/html; charset=utf-8"); $response->end("Hello Swoole"); });
Nach Abschluss der Diensterstellung und Registrierung der Rückruffunktion müssen Sie den Dienst starten.
$serv->on('close', function ($server, $fd) { echo "client {$fd} close\n"; });
Swoole verfügt über Funktionen wie Coroutine, Asynchronität und Nichtblockierung und kann sowohl synchrones Blockieren als auch asynchrones Nichtblockieren erreichen. Die Verwendung der von Swoole bereitgestellten Coroutine-Funktionen kann die Leistung von PHP-Programmen erheblich verbessern.
Als nächstes werfen wir einen Blick darauf, wie man asynchrone, nicht blockierende Kommunikation implementiert.
Erstellen Sie einen asynchronen ClientSie können einen asynchronen TCP-Client über den folgenden Code erstellen:
$serv->start();
Die Verwendung eines asynchronen Clients zum Senden einer Verbindungsanforderung an den Server müssen Sie festlegen eine Verbindungsrückruffunktion.
$client = new Swoole\Coroutine\Client(SWOOLE_TCP, SWOOLE_ASYNC);
Nach erfolgreicher Verbindung verwenden Sie die Recv-Methode, um die vom Server zurückgegebenen Daten zu empfangen. Außerdem müssen Sie eine Rückruffunktion festlegen.
$client->connect('127.0.0.1', 9501, function ($client) { $client->send("hello world"); });
Mit der von Swoole bereitgestellten Coroutine-Funktion können Sie Coroutine-Suspendierungen und andere Vorgänge durchführen, ohne die Programmausführung zu blockieren.
Das obige ist der detaillierte Inhalt vonSo installieren und rufen Sie Swoole auf (Schrittfreigabe). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!