Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan Workerman untuk melaksanakan fungsi push mesej masa nyata PHP dan Unity3D

Cara menggunakan Workerman untuk melaksanakan fungsi push mesej masa nyata PHP dan Unity3D

WBOY
WBOYasal
2023-07-20 11:07:451002semak imbas

Cara menggunakan Workerman untuk melaksanakan fungsi tolak mesej masa nyata PHP dan Unity3D

Ikhtisar:
Dalam pembangunan web moden, tolakan mesej masa nyata telah menjadi keperluan fungsian yang semakin penting. Sama ada sembang dalam talian, pemberitahuan masa nyata, penyegerakan data permainan, dll., tolakan mesej masa nyata boleh memberikan pengalaman pengguna yang lebih baik. PHP dan Unity3D ialah dua tindanan teknologi yang digunakan secara meluas Cara melaksanakan mesej masa nyata melaluinya.

Pengenalan kepada Workerman:
Workerman ialah perpustakaan rangkaian dipacu peristiwa tak segerak berprestasi tinggi yang dibangunkan berdasarkan PHP, yang menyediakan fungsi pengaturcaraan rangkaian yang berkuasa. Berbanding dengan aplikasi PHP tradisional, menggunakan Workerman boleh melaksanakan aplikasi rangkaian berkependaman tinggi dan berkependaman rendah dengan mudah. Selain itu, Workerman juga sangat sesuai untuk melaksanakan fungsi tolak data masa nyata.

Gunakan Workerman untuk melaksanakan push mesej masa nyata dalam PHP:
Mula-mula, kita perlu memasang Workerman. Buka terminal dan laksanakan arahan berikut:

composer require workerman/workerman

Seterusnya, kami mencipta fail bernama push.php dan tulis kod berikut:

<?php
require_once __DIR__ . '/vendor/autoload.php';
use WorkermanWorker;
use WorkermanConnectionTcpConnection;

$worker = new Worker("tcp://0.0.0.0:2345");

$worker->onMessage = function(TcpConnection $connection, $data) {
    // 向所有连接的客户端推送消息
    foreach($connection->worker->connections as $client) {
        $client->send($data);
    }
};

Worker::runAll();

Kod di atas mencipta perkhidmatan TCP mendengar pada port 2345. Apabila pelanggan menyambung dan menghantar mesej, mesej ditolak kepada semua pelanggan yang disambungkan.

Gunakan Workerman untuk melaksanakan push mesej masa nyata dalam Unity3D:
Unity3D ialah enjin pembangunan permainan yang sangat popular Kami boleh menggunakan C# dalam Unity3D untuk melaksanakan langganan mesej masa nyata.

Mula-mula, kami membuka Unity3D, mencipta fail skrip baharu dan menamakannya MessageSubscriber.cs. Tulis kod berikut dalam skrip:

using UnityEngine;
using WebSocketSharp;

public class MessageSubscriber : MonoBehaviour
{
    private WebSocket websocket;

    void Start()
    {
        websocket = new WebSocket("ws://localhost:2345");

        websocket.OnMessage += (sender, e) =>
        {
            string message = e.Data;
            Debug.Log(message);
        };

        websocket.Connect();
    }

    void OnDestroy()
    {
        if (websocket != null && websocket.ReadyState == WebSocketState.Open)
        {
            websocket.Close();
        }
    }
}

Kod di atas menggunakan perpustakaan WebSocketSharp untuk mencipta contoh WebSocket dan menyambung ke pelayan. Apabila mesej tiba, logik pemprosesan mesej dicetuskan melalui acara OnMessage.

Contoh tolak mesej masa nyata lengkap:
Di bawah ini kami akan menyepadukan contoh kod PHP dan Unity3D untuk menunjukkan cara melaksanakan fungsi tolak mesej masa nyata yang lengkap.

  1. Buat pemandangan baharu dalam Unity3D dan tambah objek kiub.
  2. Lekapkan fail skrip MessageSubscriber.cs pada kubus.
  3. Tambahkan beberapa logik pada kod PHP, seperti menyambung ke pangkalan data, pengesahan pengguna, dll.
  4. Dalam kod untuk menolak mesej, tapis pengguna sasaran berdasarkan keperluan sebenar dan tolak mesej hanya kepada pengguna tertentu.
  5. Dalam logik pemprosesan mesej Unity3D, adegan permainan dikendalikan dengan sewajarnya berdasarkan kandungan mesej yang diterima.

Melalui langkah di atas, kami boleh menerima dan memproses mesej yang dihantar oleh PHP dalam Unity3D dalam masa nyata, dengan itu mencapai fungsi tolakan mesej masa nyata.

Ringkasan:
Fungsi tolakan mesej masa nyata antara PHP dan Unity3D boleh dilaksanakan dengan mudah menggunakan rangka kerja Workerman. Melalui kod contoh di atas, kami boleh melaksanakan fungsi pemesejan masa nyata dengan mudah dalam projek kami sendiri dan meningkatkan pengalaman pengguna. Sudah tentu, dalam penggunaan sebenar, kita boleh mengoptimumkan dan mengembangkan lagi mengikut keperluan. Saya harap artikel ini akan membantu anda memahami Workerman dan melaksanakan push mesej masa nyata.

Atas ialah kandungan terperinci Cara menggunakan Workerman untuk melaksanakan fungsi push mesej masa nyata 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