Heim > Web-Frontend > CSS-Tutorial > Verwenden Sie noch heute HTML5 WebSockets mit einem PHP -Server

Verwenden Sie noch heute HTML5 WebSockets mit einem PHP -Server

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-27 10:24:11
Original
229 Leute haben es durchsucht

Start Using HTML5 WebSockets Today With a PHP Server

HTML5 WebSockets revolutionieren Sie die Serverkommunikation, indem Sie die Notwendigkeit von AJAX -Anforderungen beseitigen. Dieses Tutorial führt Sie durch das Erstellen eines PHP -WebSocket -Servers und eines Clients, um Nachrichten über das WebSocket -Protokoll auszutauschen. Ein Begleitpost deckt Websockets mit Node.js -Servern ab.

Websockets

verstehen

Ein WebSocket legt einen anhaltenden Zwei-Wege-Kommunikationskanal zwischen einem Kunden (wie einem Browser) und einem Backend-Service fest. Im Gegensatz zur Anforderung/Antwort-Art von HTTP unterstützen WebSockets verschiedene Protokolle und aktivieren die Bereitstellung von Server-zu-Client-Nachrichten ohne ständige Wahl.

Welche WebSockets ersetzen

Websockets überwinden die Einschränkungen der herkömmlichen HTTP -Kommunikation. Vor der Websockets machte die Staatenlosigkeit von HTTP die Echtzeit-Kommunikation herausfordernd, da Server Daten nicht proaktiv an Kunden weitergeben konnten.

Websockets bieten auch Vorteile gegenüber älteren Techniken wie Ajax Long Polling und Server-Sent-Ereignissen (SSE). Lange Umfragen reduziert gleichzeitig die Latenz, indem sie Verbindungen offen halten, und leiden immer noch unter potenziellen Zeitüberschreitungen. Zusammen mit den Ressourcen-Ineffizienzen vieler AJAX-Anwendungen unterstreicht die Notwendigkeit einer effizienteren Echtzeitlösung-Websockets. Sie aktivieren die Server-Seite "Push" -Technologie und senden Daten an Clients, ohne eine vorab festgelegte Verbindungsanforderung zu benötigen.

Installieren der Ratchet WebSockets -Bibliothek

Ratchet ist eine PHP-Bibliothek zum Erstellen von Echtzeit-, bidirektionaler und ereignisorientierter Anwendungen mithilfe von Websockets. Wir werden es verwenden, um unseren Server zu erstellen.

Angenommen, der Komponist ist installiert, verwenden Sie diesen Befehl:

composer require cboden/ratchet
Nach dem Login kopieren

Dies generiert eine ähnliche composer.json -Dateis:

{
    "require": {
        "cboden/ratchet": "^0.4.4"
    }
}
Nach dem Login kopieren

Erstellen des WebSockets -Servers

erstellen server.php mit dem folgenden Code:

<?php
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;

require __DIR__ . '/vendor/autoload.php';

class WebSocketsServer implements MessageComponentInterface {
    protected $clients;

    public function __construct() {
        $this->clients = new \SplObjectStorage;
    }

    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
        echo "New connection! ({$conn->resourceId})\n";
    }

    public function onMessage(ConnectionInterface $from, $msg) {
        foreach ($this->clients as $client) {
            if ($from !== $client) {
                $client->send($msg);
            }
        }
    }

    public function onClose(ConnectionInterface $conn) {
        $this->clients->detach($conn);
        echo "Connection {$conn->resourceId} has disconnected\n";
    }

    public function onError(ConnectionInterface $conn, \Exception $e) {
        echo "An error has occurred: {$e->getMessage()}\n";
        $conn->close();
    }
}

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new WebSocketsServer()
        )
    ),
    8089
);

$server->run();
Nach dem Login kopieren

Dieser Code definiert eine WebSocketsServer -Klassentimplementierung MessageComponentInterface, die Handhabungsverbindung (onOpen), eine Nachricht (onMessage), die Ereignisse (onClose) und die Ereignisse (onError). Die run() -Methode startet den Server auf Port 8089. (Hinweis: Das Tutorial fehlt den clientseitigen Code, der zum Abschluss des Beispiels erforderlich wäre.)

Das obige ist der detaillierte Inhalt vonVerwenden Sie noch heute HTML5 WebSockets mit einem PHP -Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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