Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan Workerman untuk membina aplikasi sembang masa nyata dengan PHP dan Unity3D

Cara menggunakan Workerman untuk membina aplikasi sembang masa nyata dengan PHP dan Unity3D

WBOY
WBOYasal
2023-07-18 19:09:16729semak imbas

Cara menggunakan Workerman untuk membina aplikasi sembang masa nyata dengan PHP dan Unity3D

Pengenalan:
Dengan perkembangan pesat Internet, komunikasi masa nyata telah menjadi bahagian yang amat diperlukan dalam aplikasi moden. Dalam permainan dalam talian, media sosial dan persekitaran pengeluaran, aplikasi sembang masa nyata memainkan peranan penting. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Workerman untuk membina aplikasi sembang masa nyata, termasuk menggunakan PHP untuk menulis kod sisi pelayan dan melaksanakan klien dalam Unity3D.

1. Penyediaan:

  1. Persekitaran PHP: Pastikan PHP telah dipasang pada pelayan anda dan persekitaran yang berkaitan telah dikonfigurasikan.
  2. Unity3D: Cari dan muat turun pakej pergantungan pemalam WebSocketSharp dalam persekitaran pembangunan Unity3D.

2. Pembinaan bahagian pelayan:
Berikut ialah contoh kod pelayan PHP yang dibina menggunakan rangka kerja Workerman. Contoh menggunakan protokol WebSocket untuk komunikasi.

// 引入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();

Kod di atas mencipta pelayan WebSocket yang mendengar pada port 1234. Apabila klien menyambung, fungsi onConnect akan dipanggil Apabila klien memutuskan sambungan, fungsi onClose akan dipanggil Apabila mesej yang dihantar oleh klien diterima, fungsi onMessage akan dipanggil.

3. Pelaksanaan pelanggan:
Dalam Unity3D, kami boleh menggunakan pemalam WebSocketSharp untuk melaksanakan fungsi klien WebSocket. Berikut ialah contoh kod Unity3D ringkas yang melaksanakan antara muka sembang ringkas.

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();
    }
}

Dalam kod di atas, kami mula-mula mencipta objek klien WebSocket ws dan menetapkan alamat pelayan yang disambungkan dan nama klien. Dalam kaedah Mula, kami mengikat fungsi pemprosesan apabila menerima mesej pelayan, menyambung ke pelayan melalui ws.Connect(), dan menghantar nama klien ke pelayan. Dalam kaedah Kemas kini, kami memantau tekanan pengguna kekunci Enter dalam kotak input sembang dan menghantar mesej ke pelayan. Dalam kaedah OnApplicationQuit, kami memutuskan sambungan WebSocket apabila program ditutup.

4 Jalankan ujian:
Untuk menguji pelayan dan klien, anda perlu menggunakan kod PHP ke pelayan anda dan menjalankan kod klien dalam Unity3D. Pastikan kedua-dua pelayan dan klien berjalan dengan betul dan boleh berkomunikasi antara satu sama lain.

5. Ringkasan:
Artikel ini memperkenalkan cara menggunakan rangka kerja Workerman untuk membina aplikasi sembang masa nyata dengan PHP dan Unity3D. Melalui kod PHP sebelah pelayan dan kod Unity3D sebelah pelanggan, kami boleh melaksanakan aplikasi sembang masa nyata yang mudah. Contoh ini boleh digunakan sebagai titik permulaan untuk anda mempelajari dan membangunkan aplikasi komunikasi masa nyata Anda boleh melanjutkan dan mengoptimumkannya mengikut keperluan dan senario aplikasi anda sendiri. Selamat berkembang!

Atas ialah kandungan terperinci Cara menggunakan Workerman untuk membina aplikasi sembang masa nyata dengan PHP dan Unity3D. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn