Einführung in die PHP-Multithread-Programmierung: Erstellen Sie einen WebSocket-Server mit der Swoole-Erweiterung

WBOY
Freigeben: 2023-06-29 13:16:01
Original
1013 Leute haben es durchsucht

Einführung in die PHP-Multithread-Programmierung: Erstellen Sie einen WebSocket-Server mit der Swoole-Erweiterung

Vorwort
In der Webentwicklung ist Echtzeitkommunikation zu einer immer wichtigeren Anforderung geworden. Das herkömmliche HTTP-Protokoll kann die Anforderungen der Echtzeitkommunikation nicht erfüllen, und das WebSocket-Protokoll ist zur Lösung geworden. Um einen WebSocket-Server in PHP zu implementieren, können wir die Swoole-Erweiterung verwenden, um einen Multithread-Server zu erstellen.

1. Was ist Swoole?
swoole ist eine PHP-Erweiterung, die Unterstützung für asynchrone, Multithreading- und Coroutinen bietet. Durch den Einsatz von Swoole können wir gleichzeitige Server, asynchrone Aufgaben, lange Verbindungen und leistungsstarke Netzwerkanwendungen in PHP erstellen. Es bietet eine Reihe von APIs zur Implementierung dieser Funktionen, einschließlich der Unterstützung verschiedener Protokolle wie TCP, UDP, HTTP, WebSocket usw.

2. Vorbereitung
Bevor Sie beginnen, müssen Sie sicherstellen, dass Sie die Swoole-Erweiterung installiert haben. Sie können den folgenden Befehl verwenden, um swoole auf einem Linux-System zu installieren:

pecl install swoole
Nach dem Login kopieren

Oder auf einem Windows-System können Sie das swoole-Binärpaket von der offiziellen Website herunterladen und in das PHP-Erweiterungsverzeichnis extrahieren. Fügen Sie dann die folgende Konfiguration in die php.ini-Datei ein:

extension=swoole
Nach dem Login kopieren

3. Erstellen Sie einen WebSocket-Server
Im Folgenden zeigen wir anhand eines einfachen Beispiels, wie Sie mit der Swoole-Erweiterung einen WebSocket-Server erstellen.

  1. Zuerst erstellen wir eine server.php-Datei, führen die swoole-Erweiterung ein und initialisieren einen WebSocket-Server:

    <?php
    $server = new SwooleWebSocketServer("0.0.0.0", 9501);
    Nach dem Login kopieren
  2. Dann können wir einige Serverparameter festlegen, wie z. B. die Anzahl der Arbeitsprozesse und den Überwachungsport :

    $server->set([
     'worker_num' => 4,
     'max_request' => 10000,
    ]);
    Nach dem Login kopieren
  3. Als nächstes hören wir auf das offene Ereignis der WebSocket-Verbindung und verarbeiten es entsprechend:

    $server->on('open', function ($server, $request) {
     echo "new connection: {$request->fd}
    ";
    });
    Nach dem Login kopieren
  4. Dann hören wir auf das WebSocket-Nachrichtenereignis und verarbeiten es entsprechend:

    $server->on('message', function ($server, $frame) {
     echo "received message: {$frame->data}
    ";
     // 可以在这里编写自定义的业务逻辑处理
    });
    Nach dem Login kopieren
  5. Schließlich haben wir Hören Sie auf die WebSocket-Verbindung. Schließen Sie das Ereignis und behandeln Sie es entsprechend:

    $server->on('close', function ($server, $fd) {
     echo "connection closed: {$fd}
    ";
    });
    Nach dem Login kopieren
  6. Schließlich starten wir den WebSocket-Server:

    $server->start();
    Nach dem Login kopieren
  7. Führen Sie server.php in der Befehlszeile aus:

    php server.php
    Nach dem Login kopieren

4. Testen Sie den WebSocket Server
Jetzt haben wir einen WebSocket-Server erstellt und können ihn mit einer einfachen HTML-Seite testen.

  1. Erstellen Sie zunächst eine index.html-Datei und schreiben Sie den folgenden Code:

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <title>WebSocket Test</title>
     <script>
         var ws = new WebSocket("ws://localhost:9501");
         ws.onopen = function() {
             console.log("WebSocket connection open.");
         };
         ws.onmessage = function(evt) {
             console.log("received message: " + evt.data);
         };
         ws.onclose = function() {
             console.log("WebSocket connection closed.");
         };
     </script>
    </head>
    <body>
     <h1>WebSocket Test</h1>
    </body>
    </html>
    Nach dem Login kopieren
  2. Öffnen Sie den Browser und besuchen Sie die Seite index.html. Der Verbindungsstatus zum WebSocket-Server und die empfangenen Nachrichten können in der Konsole des Browsers eingesehen werden.
  3. Zusammenfassung
    Mit der Swoole-Erweiterung können wir ganz einfach einen WebSocket-Server in PHP erstellen. In der tatsächlichen Projektentwicklung können wir die Funktionen des WebSocket-Servers entsprechend den spezifischen Anforderungen weiter verbessern und optimieren. Gleichzeitig stellt swoole auch mehr Funktionen und APIs bereit, mit denen gleichzeitige, asynchrone und leistungsstarke Netzwerkanwendungen verarbeitet werden können, was ein tieferes Lernen und Üben ermöglicht.

    Das obige ist der detaillierte Inhalt vonEinführung in die PHP-Multithread-Programmierung: Erstellen Sie einen WebSocket-Server mit der Swoole-Erweiterung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!