Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana PHP dan Unity3D bergabung untuk menggunakan Workerman untuk membina sistem pengundian masa nyata

Bagaimana PHP dan Unity3D bergabung untuk menggunakan Workerman untuk membina sistem pengundian masa nyata

WBOY
WBOYasal
2023-07-18 18:58:491116semak imbas

Bagaimana PHP dan Unity3D bergabung untuk menggunakan Workerman untuk membina sistem pengundian masa nyata

Pengenalan:
Dengan perkembangan pesat Internet, terdapat lebih banyak permintaan untuk aplikasi interaktif masa nyata. Artikel ini akan memperkenalkan cara menggunakan PHP dan Unity3D untuk membina sistem pengundian masa nyata menggunakan Workerman. Melalui contoh ini, pembaca boleh belajar cara menggunakan alat ini untuk membina aplikasi masa nyata.

1. Apakah itu Pekerja?
Workerman ialah rangka kerja rangkaian dipacu peristiwa tak segerak berdasarkan PHP, yang boleh digunakan untuk membina aplikasi berprestasi tinggi, berkonkurensi tinggi dan masa nyata. Dengan menggunakan Workerman, kami boleh melaksanakan komunikasi masa nyata dengan mudah pada bahagian belakang PHP.

2. Mengapa memilih Unity3D?
Unity3D ialah enjin permainan merentas platform popular yang menyediakan alat pembangunan dan API yang berkuasa. Oleh itu, kami boleh menggunakan Unity3D untuk membina pelanggan sistem pengundian masa nyata dan berkomunikasi dengan PHP bahagian belakang untuk mencapai statistik dan paparan undian masa nyata.

3. Persediaan persekitaran
Pertama, anda perlu memasang dan mengkonfigurasi persekitaran PHP, dan memuat turun dan memasang Workerman. Pemasangan Workerman sangat mudah, cuma pasang melalui komposer:

composer require workerman/workerman

Seterusnya, anda perlu mencipta fail PHP, seperti server.php, untuk menyediakan pelayan dan mengendalikan komunikasi masa nyata. Berikut ialah kod contoh mudah:

require_once 'vendor/autoload.php';
use WorkermanWorker;

$worker = new Worker("websocket://0.0.0.0:9876");

$worker->onConnect = function($connection) {
    echo "New client connected
";
};

$worker->onMessage = function($connection, $data) use ($worker) {
    echo "Received message: $data
";
    $worker->sendToAll($data);
};

Worker::runAll();

4 pelaksanaan klien Unity3D
Unity3D menyediakan pemalam WebSocketSharp, yang boleh digunakan untuk berkomunikasi dengan pelayan WebSocket. Mula-mula, buat objek kosong dalam Unity3D dan lampirkan skrip pemalam WebSocketSharp. Berikut ialah contoh kod skrip:

using UnityEngine;
using WebSocketSharp;

public class VoteClient : MonoBehaviour
{
    private WebSocket ws;

    void Start()
    {
        ws = new WebSocket("ws://localhost:9876/");
        ws.OnOpen += (sender, e) => {
            Debug.Log("Connected to server");
        };

        ws.OnMessage += (sender, e) => {
            string message = e.Data;
            Debug.Log("Received message: " + message);
        };

        ws.Connect();
    }
    
    void OnDestroy()
    {
        ws.Close();
    }
}

Kod di atas mencipta objek WebSocket dan mewujudkan sambungan dengan pelayan. Apabila sambungan berjaya, "Disambungkan ke pelayan" akan dicetak. Pada masa yang sama, dengan mendengar acara OnMessage, anda boleh menerima mesej yang dihantar oleh pelayan.

5. Pelaksanaan sistem pengundian
Untuk memudahkan contoh, kami andaikan sistem pengundian hanya mengandungi dua calon. Dalam Unity3D, antara muka pengundian yang mudah boleh dilaksanakan menggunakan GUI. Berikut ialah contoh kod:

using UnityEngine;
using WebSocketSharp;

public class VoteClient : MonoBehaviour
{
    private WebSocket ws;
    private int voteCount1 = 0;
    private int voteCount2 = 0;

    void Start()
    {
        // ...省略之前的代码

        GUI.Button(new Rect(50, 10, 150, 30), "Candidate 1: " + voteCount1);
        GUI.Button(new Rect(50, 50, 150, 30), "Candidate 2: " + voteCount2);

        if (GUI.Button(new Rect(50, 90, 150, 30), "Vote for Candidate 1"))
        {
            voteCount1++;
            ws.Send("vote 1");
        }

        if (GUI.Button(new Rect(50, 130, 150, 30), "Vote for Candidate 2"))
        {
            voteCount2++;
            ws.Send("vote 2");
        }
    }
    
    // ... 省略之后的代码
}

Kod di atas melaksanakan dua butang untuk mengundi melalui GUI dan menghantar keputusan undian ke pelayan melalui WebSocket. Pada masa yang sama, dengan mengubah suai pembolehubah voteCount, keputusan pengundian boleh dikemas kini dalam masa nyata.

6 Operasi dan Pengujian
Kini, kami boleh menjalankan sistem pengundian dalam Unity3D dan memerhati keputusan pengundian dalam masa nyata dengan menyambung ke pelayan. Mula-mula, mulakan pelayan PHP, arahannya ialah php server.php. Kemudian, jalankan skrip VoteClient dalam Unity3D untuk mengundi pada antara muka.

Melalui langkah di atas, kami berjaya membina sistem pengundian masa nyata menggunakan PHP dan Unity3D digabungkan dengan Workerman. Melalui contoh ini, pembaca boleh meneroka dan mengamalkan aplikasi masa nyata yang lebih kompleks.

Kesimpulan:
Terdapat lebih banyak keperluan aplikasi untuk interaksi masa nyata, dan sistem pengundian masa nyata adalah salah satu senario aplikasi. Dengan menggunakan PHP, Unity3D dan Workerman, kami boleh membina aplikasi masa nyata berprestasi tinggi dan berkonkurensi tinggi dengan mudah. Pada masa yang sama, melalui contoh ini, pembaca boleh lebih memahami dan meneroka proses pembinaan dan pembangunan aplikasi masa nyata.

Atas ialah kandungan terperinci Bagaimana PHP dan Unity3D bergabung untuk menggunakan Workerman untuk membina sistem pengundian masa nyata. 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