Heim >PHP-Framework >Workerman >Praktische Anwendung von Workerman: Erstellen eines leistungsstarken Online-Chatrooms

Praktische Anwendung von Workerman: Erstellen eines leistungsstarken Online-Chatrooms

WBOY
WBOYOriginal
2023-08-06 12:29:061491Durchsuche

Workerman Praktische Anwendung: Erstellen Sie einen leistungsstarken Online-Chatroom

Einführung:
Im heutigen Internetzeitalter ist Echtzeit-Online-Chat zu einem unverzichtbaren Bestandteil des Lebens der Menschen geworden. Um den Bedürfnissen der Benutzer nach leistungsstarker Echtzeitinteraktion gerecht zu werden, ist die Wahl eines geeigneten Kommunikationsrahmens von entscheidender Bedeutung. Workerman kann als leistungsstarkes PHP-Framework für die asynchrone Netzwerkkommunikation diese Anforderungen erfüllen. In diesem Artikel wird erläutert, wie Sie mit Workerman einen leistungsstarken Online-Chatroom erstellen und Codebeispiele bereitstellen.

1. Umgebungsvorbereitung
Bevor Sie beginnen, stellen Sie sicher, dass Ihre Umgebung die folgenden Bedingungen erfüllt:

  1. PHP-Version sollte nicht niedriger als 5.3 sein und pcntl- und Posix-Erweiterungen sollten installiert sein.
  2. Installieren Sie Composer, der zum Installieren von Workerman und seinen abhängigen Bibliotheksdateien verwendet wird.

2. Erstellen Sie einen Chatroom-Server
Zuerst müssen wir einen Chatroom-Server erstellen. Erstellen Sie eine Datei mit dem Namen „chat_server.php“ und fügen Sie den folgenden Code hinzu:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use WorkermanWorker;

$ws_worker = new Worker("websocket://0.0.0.0:8000");

$ws_worker->count = 4; // 设置启动4个进程

$ws_worker->onConnect = function ($connection) {
    echo "有新用户连接
";
};

$ws_worker->onMessage = function ($connection, $data) use ($ws_worker) {
    foreach ($ws_worker->connections as $clientConnection) {
        $clientConnection->send($data); // 将收到的消息发送给所有连接的客户端
    }
};

$ws_worker->onClose = function ($connection) {
    echo "有用户断开连接
";
};

Worker::runAll();

Mit dem obigen Code haben wir einen WebSocket-Server erstellt und Port 8000 abgehört. Wenn ein neuer Benutzer eine Verbindung herstellt, wird „Neuer Benutzer verbindet“ im Hintergrund ausgegeben. Wenn ein Benutzer die Verbindung trennt, wird „Ein Benutzer trennt sich“ im Hintergrund ausgegeben. In der Callback-Funktion onMessage senden wir die empfangene Nachricht an alle verbundenen Clients.

3. Erstellen Sie einen Chatroom-Client
Als nächstes müssen wir einen einfachen Chatroom-Client erstellen. Erstellen Sie eine Datei mit dem Namen „chat_client.html“ und fügen Sie den folgenden Code hinzu:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>在线聊天室</title>
    <style>
        #message {
            height: 500px;
            border: 1px solid #ccc;
            padding: 10px;
            overflow-y: scroll;
        }

        #message p {
            margin: 5px 0;
        }

        #input {
            margin-top: 10px;
        }
    </style>
</head>
<body>
<div id="message"></div>
<input type="text" id="input" placeholder="请输入消息">
<button onclick="send()">发送</button>

<script>
    var ws = new WebSocket("ws://localhost:8000");

    ws.onopen = function () {
        console.log("连接成功");
    };

    ws.onmessage = function (evt) {
        var message = document.getElementById("message");
        message.innerHTML += "<p>" + evt.data + "</p>";
        message.scrollTop = message.scrollHeight; // 滚动到底部
    };

    ws.onclose = function () {
        console.log("连接关闭");
    };

    function send() {
        var input = document.getElementById("input");
        var message = input.value;
        ws.send(message);
        input.value = "";
    }
</script>
</body>
</html>

Mit dem obigen Code haben wir eine einfache Chatroom-Client-Schnittstelle erstellt. Wenn der Benutzer eine Nachricht eingibt und auf die Schaltfläche „Senden“ klickt, wird die Nachricht an den Server gesendet. Wenn der Server eine Nachricht empfängt, wird die Nachricht im Nachrichtenbereich der Onmessage-Callback-Funktion angezeigt und automatisch nach unten gescrollt.

4. Testen Sie den Chatroom
Führen Sie den folgenden Befehl in der Befehlszeile aus, um den Server zu starten:

php chat_server.php start

Öffnen Sie dann zwei oder mehr Browserfenster und greifen Sie auf die Datei „chat_client.html“ zu. Geben Sie die Nachricht in das Eingabefeld verschiedener Browserfenster ein, klicken Sie auf die Schaltfläche „Senden“ und Sie sehen in allen Fenstern dieselbe Nachricht. Auf diese Weise ist es uns gelungen, einen leistungsstarken Online-Chatroom zu erstellen.

Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mit Workerman einen leistungsstarken Online-Chatroom erstellen, und es werden entsprechende Codebeispiele bereitgestellt. Durch die Verwendung von Workerman können wir problemlos Echtzeit-Chat-Funktionen mit hoher Parallelität und geringer Latenz implementieren. Ich hoffe, dass dieser Artikel für die praktische Anwendung von Workerman hilfreich sein wird.

Das obige ist der detaillierte Inhalt vonPraktische Anwendung von Workerman: Erstellen eines leistungsstarken Online-Chatrooms. 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