Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie mit Workerman eine Echtzeit-Chat-Anwendung mit PHP und Unity3D

So erstellen Sie mit Workerman eine Echtzeit-Chat-Anwendung mit PHP und Unity3D

WBOY
WBOYOriginal
2023-07-18 19:09:16669Durchsuche

So erstellen Sie mit Workerman eine Echtzeit-Chat-Anwendung mit PHP und Unity3D

Einführung:
Mit der rasanten Entwicklung des Internets ist Echtzeitkommunikation zu einem unverzichtbaren Bestandteil moderner Anwendungen geworden. In Online-Gaming-, Social-Media- und Produktionsumgebungen spielen Echtzeit-Chat-Anwendungen eine wichtige Rolle. In diesem Artikel wird erläutert, wie Sie mit dem Workerman-Framework eine Echtzeit-Chat-Anwendung erstellen, einschließlich der Verwendung von PHP zum Schreiben von serverseitigem Code und der Implementierung des Clients in Unity3D.

1. Vorbereitung:

  1. PHP-Umgebung: Stellen Sie sicher, dass PHP auf Ihrem Server installiert und die entsprechende Umgebung konfiguriert wurde.
  2. Unity3D: Suchen Sie das WebSocketSharp-Plug-in-Abhängigkeitspaket in der Unity3D-Entwicklungsumgebung und laden Sie es herunter.

2. Serverseitige Konstruktion:
Das Folgende ist ein einfaches PHP-Servercodebeispiel, das mit dem Workerman-Framework erstellt wurde. Das Beispiel verwendet das WebSocket-Protokoll für die Kommunikation.

// 引入Workerman的命名空间
use WorkermanWorker;
use WorkermanLibTimer;

// 创建一个Worker对象,端口为1234
$ws_worker = new Worker("websocket://0.0.0.0:1234");

// 设置进程数
$ws_worker->count = 4;

// 客户端连接时的处理函数
$ws_worker->onConnect = function($connection) {
    echo "New connection
";
};

// 客户端断开连接时的处理函数
$ws_worker->onClose = function($connection) {
    echo "Connection closed
";
};

// 收到客户端消息时的处理函数
$ws_worker->onMessage = function($connection, $data) use ($ws_worker) {
    // 向所有客户端广播消息
    foreach($ws_worker->connections as $client_connection) {
        $client_connection->send($data);
    }
};

// 启动Worker
Worker::runAll();

Der obige Code erstellt einen WebSocket-Server, der Port 1234 überwacht. Wenn der Client eine Verbindung herstellt, wird die Funktion onConnect aufgerufen. Wenn der Client die Verbindung trennt, wird die Funktion onClose aufgerufen. Wenn eine vom Client gesendete Nachricht empfangen wird, wird die Funktion onMessage aufgerufen.

3. Client-Implementierung:
In Unity3D können wir das WebSocketSharp-Plug-in verwenden, um die Funktionen des WebSocket-Clients zu implementieren. Das Folgende ist ein einfaches Unity3D-Codebeispiel, das eine einfache Chat-Schnittstelle implementiert.

using UnityEngine;
using System.Collections;
using WebSocketSharp;

public class ChatHandler : MonoBehaviour
{
    // WebSocket客户端对象
    WebSocket ws;

    // 服务器地址
    public string serverUrl = "ws://localhost:1234/";

    // 客户端名称
    public string clientName = "UnityClient";

    // 聊天消息
    public string message = "";

    // Start方法,程序启动时会自动调用
    void Start()
    {
        // 创建WebSocket客户端对象
        ws = new WebSocket(serverUrl);

        // 当收到服务器消息时的处理函数
        ws.OnMessage += (sender, e) =>
        {
            Debug.Log("Received: " + e.Data);
        };

        // 连接服务器
        ws.Connect();

        // 发送客户端名称给服务器
        ws.Send(clientName);
    }

    // Update方法,每帧更新时会自动调用
    void Update()
    {
        // 发送消息给服务器
        if (Input.GetKeyDown(KeyCode.Return))
        {
            ws.Send(message);

            // 清空输入框
            message = "";
        }
    }

    // 程序关闭时会自动调用
    void OnApplicationQuit()
    {
        // 断开WebSocket连接
        ws.Close();
    }
}

Im obigen Code erstellen wir zunächst ein WebSocket-Clientobjekt ws und legen die Adresse des verbundenen Servers und den Clientnamen fest. In der Start-Methode binden wir die Verarbeitungsfunktion beim Empfang der Servernachricht, stellen über ws.Connect() eine Verbindung zum Server her und senden den Clientnamen an den Server. Bei der Update-Methode überwachen wir das Drücken der Eingabetaste im Chat-Eingabefeld durch den Benutzer und senden die Nachricht an den Server. In der OnApplicationQuit-Methode trennen wir die WebSocket-Verbindung, wenn das Programm geschlossen wird.

4. Führen Sie den Test aus:
Um den Server und den Client zu testen, müssen Sie den PHP-Code auf Ihrem Server bereitstellen und den Client-Code in Unity3D ausführen. Stellen Sie sicher, dass sowohl der Server als auch der Client ordnungsgemäß laufen und miteinander kommunizieren können.

5. Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mit dem Workerman-Framework eine Echtzeit-Chat-Anwendung mit PHP und Unity3D erstellen. Durch serverseitigen PHP-Code und clientseitigen Unity3D-Code können wir eine einfache Echtzeit-Chat-Anwendung implementieren. Dieses Beispiel kann als Ausgangspunkt für das Erlernen und Entwickeln von Echtzeit-Kommunikationsanwendungen dienen. Sie können es entsprechend Ihren eigenen Anforderungen und Anwendungsszenarien erweitern und optimieren. Viel Spaß beim Entwickeln!

Das obige ist der detaillierte Inhalt vonSo erstellen Sie mit Workerman eine Echtzeit-Chat-Anwendung mit PHP und Unity3D. 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