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

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-02-27 10:24:11232Durchsuche

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:

<code class="language-bash">composer require cboden/ratchet</code>

Dies generiert eine ähnliche composer.json -Dateis:

<code class="language-json">{
    "require": {
        "cboden/ratchet": "^0.4.4"
    }
}</code>

Erstellen des WebSockets -Servers

erstellen server.php mit dem folgenden Code:

<code class="language-php"><?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();</code>

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!

Stellungnahme:
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