WebSocket Chat

Über diese einfache Schnittstelle können Sie eine Nachricht eingeben und an den WebSocket-Server senden. Alle verbundenen Clients erhalten die Nachricht und zeigen sie an.

Schritt 5: Testen Sie die WebSocket-Verbindung

  1. Starten Sie Ihren WebSocket-Server, indem Sie php start_server.php ausführen.
  2. Öffnen Sie index.html in einem Browser.
  3. Öffnen Sie dieselbe Seite in einem anderen Browser oder Tab, um mehrere Clients zu simulieren.

Wenn Sie eine Nachricht von einem Client senden, wird sie in den Browsern aller verbundenen Clients angezeigt.


Vorteile der Verwendung von WebSockets in PHP


Anwendungsfälle für WebSockets in PHP


Abschluss

WebSockets bieten eine leistungsstarke Lösung für die Echtzeit-Vollduplex-Kommunikation zwischen Client und Server, ideal für Chat-Systeme, Live-Benachrichtigungen und andere Echtzeitanwendungen. Durch die Verwendung von PHP mit Bibliotheken wie Ratchet können Sie ganz einfach einen WebSocket-Server einrichten und ihn für eine bessere Benutzereinbindung und Reaktionsfähigkeit in Ihre Anwendungen integrieren.

","image":"http://www.luping.net/uploads/20240930/172769436566fa861d5b103.jpg","datePublished":"2024-11-06T15:21:16+08:00","dateModified":"2024-11-06T15:21:16+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > WebSockets in PHP verstehen

WebSockets in PHP verstehen

Veröffentlicht am 06.11.2024
Durchsuche:348

Understanding WebSockets in PHP

WebSockets bieten einen Echtzeit-Vollduplex-Kommunikationskanal über eine einzige TCP-Verbindung. Im Gegensatz zu HTTP, bei dem der Client Anfragen an den Server sendet und auf eine Antwort wartet, ermöglichen WebSockets eine kontinuierliche Kommunikation zwischen dem Client und dem Server, ohne dass mehrere Anfragen erforderlich sind. Dies ist ideal für Anwendungen, die Echtzeit-Updates erfordern, wie Chat-Anwendungen, Live-Benachrichtigungen und Online-Spiele.

In diesem Leitfaden erkunden wir WebSockets, wie sie funktionieren und wie man sie in PHP implementiert.


Was sind WebSockets?

WebSockets ermöglichen die interaktive Kommunikation zwischen einem Webbrowser (oder einem anderen Client) und einem Server. Hier sind die wichtigsten Aspekte von WebSockets:

  1. Vollduplex-Kommunikation: Sowohl Client als auch Server können jederzeit Nachrichten aneinander senden, wodurch die Verbindung effizienter ist als herkömmliche HTTP-Abfragen.
  2. Persistente Verbindung: Sobald die WebSocket-Verbindung hergestellt ist, bleibt sie geöffnet, bis sie explizit vom Client oder Server geschlossen wird.
  3. Geringe Latenz: Da WebSockets die Notwendigkeit beseitigen, für jede Anfrage neue Verbindungen zu öffnen, reduzieren sie die Latenz und sind somit ideal für die Echtzeitkommunikation.

Wie WebSockets funktionieren

  1. Handshake: Die Kommunikation beginnt mit einer HTTP-Anfrage. Der Client sendet eine HTTP-Anfrage mit einem Upgrade-Header, um die Verbindung von HTTP auf WebSockets umzustellen.
  2. Verbindung hergestellt: Sobald der Server den Handshake bestätigt, wird die Verbindung hergestellt und sowohl Client als auch Server können mit dem Senden und Empfangen von Nachrichten beginnen.
  3. Messaging: Daten werden über Frames übertragen, die leichtgewichtig sind und ohne den Overhead von HTTP-Headern hin und her gesendet werden können.
  4. Verbindungsabbau: Entweder der Client oder der Server können die Verbindung beenden.

Wann WebSockets verwendet werden sollten

  • Echtzeitanwendungen: Zum Beispiel Chat-Anwendungen, Live-Benachrichtigungen und gemeinsame Bearbeitung.
  • Spiele: Für Multiplayer-Onlinespiele, bei denen häufige Updates erforderlich sind.
  • Live-Feeds: Streamen von Aktienkursen, Sportergebnissen oder Echtzeitdaten von IoT-Geräten.
  • Tools für die Zusammenarbeit: Für Apps wie Google Docs, bei denen mehrere Benutzer Aktualisierungen in Echtzeit sehen müssen.

WebSockets in PHP implementieren

Um WebSockets in PHP zu implementieren, können Sie eine Bibliothek wie Ratchet verwenden, eine PHP-Bibliothek, die speziell für die bidirektionale Kommunikation in Echtzeit mithilfe von WebSockets entwickelt wurde.


Schritt-für-Schritt-WebSocket-Implementierung mit Ratchet

Schritt 1: Ratchet über Composer installieren

Zuerst müssen Sie die Ratchet-Bibliothek installieren. Vorausgesetzt, Sie haben Composer installiert, können Sie den folgenden Befehl ausführen:

composer require cboden/ratchet

Schritt 2: Erstellen Sie einen WebSocket-Server in PHP

Lassen Sie uns einen einfachen WebSocket-Server erstellen, der Verbindungen und Nachrichten verarbeitet.

  1. Erstellen Sie eine WebSocket-Serverklasse in WebSocketServer.php:
clients = new \SplObjectStorage;
    }

    // Called when a new client connects
    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
        echo "New connection: ({$conn->resourceId})\n";
    }

    // Called when a client sends a message
    public function onMessage(ConnectionInterface $from, $msg) {
        echo "New message: $msg\n";

        foreach ($this->clients as $client) {
            if ($from !== $client) {
                // Send the message to everyone except the sender
                $client->send($msg);
            }
        }
    }

    // Called when a connection is closed
    public function onClose(ConnectionInterface $conn) {
        $this->clients->detach($conn);
        echo "Connection closed: ({$conn->resourceId})\n";
    }

    // Called if an error occurs
    public function onError(ConnectionInterface $conn, \Exception $e) {
        echo "Error: {$e->getMessage()}\n";
        $conn->close();
    }
}

Diese Klasse implementiert Ratchets MessageComponentInterface, das Methoden für die Behandlung neuer Verbindungen, eingehender Nachrichten, geschlossener Verbindungen und Fehler definiert.

Schritt 3: Ausführen des WebSocket-Servers

Erstellen Sie ein neues PHP-Skript, um den WebSocket-Server zu starten, zum Beispiel start_server.php.

run();

Sie können den Server starten, indem Sie dieses Skript ausführen:

php start_server.php

Der Server läuft jetzt auf ws://localhost:8080.

Schritt 4: Erstellen Sie ein Frontend, um eine Verbindung zum WebSocket-Server herzustellen

Jetzt erstellen wir eine HTML-Datei mit jQuery und JavaScript, um eine Verbindung zum WebSocket-Server herzustellen.

  1. HTML-Datei erstellen index.html:


    WebSocket Chat

WebSocket Chat

Über diese einfache Schnittstelle können Sie eine Nachricht eingeben und an den WebSocket-Server senden. Alle verbundenen Clients erhalten die Nachricht und zeigen sie an.

Schritt 5: Testen Sie die WebSocket-Verbindung

  1. Starten Sie Ihren WebSocket-Server, indem Sie php start_server.php ausführen.
  2. Öffnen Sie index.html in einem Browser.
  3. Öffnen Sie dieselbe Seite in einem anderen Browser oder Tab, um mehrere Clients zu simulieren.

Wenn Sie eine Nachricht von einem Client senden, wird sie in den Browsern aller verbundenen Clients angezeigt.


Vorteile der Verwendung von WebSockets in PHP

  • Echtzeit-Updates: WebSockets bieten Echtzeit-Updates ohne den Overhead von HTTP-Polling.
  • Geringere Latenz: Da die Verbindung offen bleibt, können Nachrichten sofort gesendet werden, wodurch die Latenz reduziert wird.
  • Bidirektionale Kommunikation: Sowohl der Server als auch der Client können gleichzeitig Nachrichten aneinander senden, im Gegensatz zu herkömmlichem HTTP, bei dem die Kommunikation vom Client initiiert wird.

Anwendungsfälle für WebSockets in PHP

  • Chat-Anwendungen: WebSockets eignen sich perfekt für Echtzeit-Chat-Anwendungen, bei denen Nachrichten sofort an alle Benutzer gesendet werden müssen.
  • Live-Benachrichtigungen: Für Apps, die Live-Benachrichtigungen senden müssen (z. B. soziale Medien, Aktienkurse).
  • Tools für die Zusammenarbeit in Echtzeit: WebSockets ermöglichen die Zusammenarbeit in Echtzeit, beispielsweise die Live-Bearbeitung von Dokumenten.
  • Online-Gaming: Multiplayer-Online-Spiele profitieren von der Kommunikation mit geringer Latenz von WebSockets.

Abschluss

WebSockets bieten eine leistungsstarke Lösung für die Echtzeit-Vollduplex-Kommunikation zwischen Client und Server, ideal für Chat-Systeme, Live-Benachrichtigungen und andere Echtzeitanwendungen. Durch die Verwendung von PHP mit Bibliotheken wie Ratchet können Sie ganz einfach einen WebSocket-Server einrichten und ihn für eine bessere Benutzereinbindung und Reaktionsfähigkeit in Ihre Anwendungen integrieren.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/mdarifulhaque/understanding-websockets-in-php-2cli?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3