လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Unity3D နှင့် workermaner နှင့်ပေါင်းစပ်ထားသော concurrent ဂိမ်းဆာဗာများတည်ဆောက်ရန်လက်တွေ့လမ်းညွှန်

Unity3D နှင့် workermaner နှင့်ပေါင်းစပ်ထားသော concurrent ဂိမ်းဆာဗာများတည်ဆောက်ရန်လက်တွေ့လမ်းညွှန်

M66 2025-10-07

PHP, Unity3D နှင့် Workermaner သည်မြင့်မားသောတစ်ပြိုင်နက်တည်းဂိမ်းဆာဗာများတည်ဆောက်ရန်

အွန်လိုင်းဂိမ်းများကိုစဉ်ဆက်မပြတ်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူဂိမ်း developer များသည် server-side စွမ်းဆောင်ရည်တွင်စိန်ခေါ်မှုများပိုမိုများပြားလာသည်။ ၎င်းတို့အနက်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုပြုပြင်ခြင်းစွမ်းရည်သည်ဂိမ်းအတွေ့အကြုံကိုအကျိုးသက်ရောက်စေသောအဓိကအချက်ဖြစ်သည်။ ဤဆောင်းပါးသည် PHP, Unity3D နှင့် Workermaner ကိုထိရောက်သောတည်ငြိမ်သောအမြင့်ဆုံးဂိမ်းဆာဗာကိုတည်ဆောက်ရန်မည်သို့အသုံးပြုရမည်ကိုပြလိမ့်မည်။

အဓိကနည်းပညာသုံးခုကိုနားလည်ပါ

PHP သည်လူကြိုက်များသော server-side scripting language ဖြစ်ပြီးရိုးရှင်းသော, UNITY3D သည် cross-platform ဂိမ်းများကိုလျင်မြန်စွာတည်ဆောက်နိုင်သည့်အစွမ်းထက်သောဂိမ်းအင်ဂျင်တစ်ခုဖြစ်သည်။ Workerman သည်စွမ်းဆောင်ရည်မြင့်မားသော PHP နှင့်ဆက်သွယ်ရေးမူဘောင်ကိုအကြီးစားတစ်ပြိုင်တည်းဆက်သွယ်မှုကိုကိုင်တွယ်ရန်ဒီဇိုင်းပြုလုပ်ထားသည်။

ဤသုံးခုကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့၏သက်ဆိုင်ရာအားသာချက်များကိုအပြည့်အဝကစားနိုင်ပြီးထိရောက်သောအချက်အလက်အပြန်အလှန်ဆက်သွယ်မှုနှင့်အချိန်နှင့်တပြေးညီဆက်သွယ်ခြင်းကိုရရှိနိုင်ပါသည်။

ပတ်ဝန်းကျင်ပြင်ဆင်မှုနှင့်တပ်ဆင်ခြင်း

တရားဝင်ဖွံ့ဖြိုးတိုးတက်မှုမတိုင်မီသင် PHP နှင့် Workermaner ကိုဆာဗာတွင်ပထမဆုံးထည့်သွင်းရန်လိုအပ်သည်။ installation နည်းလမ်းကိုတေးရေးဆရာမှတဆင့်ဖျော်ဖြေနိုင်သည်, command ကိုအောက်ပါအတိုင်းဖြစ်သည် -

 တေးရေးဆရာသည် Workerman / Workermaner လိုအပ်သည်

installation ပြီးစီးပြီးနောက်ဂိမ်းဆာဗာကိုစတင်ရန် PHP server-side script ကိုရေးနိုင်သည်။

PHP Side: Workerman-based ဂိမ်းဆာဗာ

အခြေခံ Workerman ဆာဗာတစ်ခုဖန်တီးရန်ရိုးရှင်းသော PHP နမူနာကုဒ်ဖြစ်သည်။

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

use Workerman\Worker;

// aWorkerနားထောင်ခြင်း127.0.0.1:2345
$worker = new Worker('tcp://127.0.0.1:2345');

// client ကိုဆက်သွယ်သည့်အခါအစပျိုး
$worker-> Onconnect = function ကို ($ ဆက်သွယ်မှု) {
    echo "client အသစ်ချိတ်ဆက်";
};

0 န်ဆောင်မှုခံယူသူသည်ဒေတာများကိုပို့သောအခါဒေါ်လာ 0 န်ထမ်း> onmessage = function ($ ဆက်သွယ်မှု, $ ဒေတာ)
    // လက်ခံရရှိသည့်ဒေတာအပေါ်အခြေခံပြီးသက်ဆိုင်ရာအပြောင်းအလဲနဲ့လုပ်ဆောင်ခြင်း // ...
};

0 န်ဆောင်မှုခံယူသူသည် $ 0 န်ထမ်းတစ်ဖြုတ်ဖြုတ်ချသည့်အခါ >> Onclose = function ($ ဆက်သွယ်မှု) {
    ပဲ့တင်သံ "client ကိုပိတ်ထား";
};

// အလုပ်သမားအလုပ်သမား
အလုပ်သမား :: Runall ();
>

ဤကုဒ်သည် local ports များသို့စာရင်းပြုစုပြီး client connection များ, မက်ဆေ့ခ်ျကိုပြုပြင်ခြင်းနှင့်အဆက်ပြတ်သည့်အခါ callback များကိုသတ်မှတ်ပေးသောဆာဗာတစ်ခုကိုဖန်တီးသည်။ developer များက Data Protocols နှင့် Game Logic အပေါ် အခြေခံ. စာနယ်ဇင်း protocols နှင့် message processing method များကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။

Unity3D End: Client Network ဆက်သွယ်ရေးအကောင်အထည်ဖော်မှု

UNITY3D တွင် C # scripts များကိုရေးရန်လိုအပ်ပြီး PHP server နှင့် TCP ဆက်သွယ်မှုကိုတည်ဆောက်ရန်နှင့်ဒေတာများကိုပေးပို့ခြင်းနှင့်လက်ခံခြင်းကိုနားလည်ပါ။ အောက်ဖော်ပြပါသည်နမူနာကုဒ်ဖြစ်သည်။

 unityengine ကိုအသုံးပြုခြင်း,
system.net.sockets ကိုအသုံးပြုခြင်း,
system.io ကိုအသုံးပြုပြီး;
system.text ကိုအသုံးပြုခြင်း,

Public Class GameClient: Monobehaviour {

    ပုဂ္ဂလိက TCPCLIENTIGH CLORM;
    ပုဂ္ဂလိကကွန်ယက်စီးဆင်းမှု,
    ပုဂ္ဂလိကကိရိယာများစာဖတ်သူ,
    သီးသန့် streamwriter စာရေးဆရာ;

    ပျက်ပြယ်စတင် () {)
        // ဆာဗာ client ကိုချိတ်ဆက်ခြင်း = TCPCLIDE အသစ် ("127.0.0.1", 2345),
        stream = client.gettstream ();
        Reader = streamreader အသစ် (stream, encoding.utf8);
        စာရေးဆရာ = StreamWriter (Stream, encoding.utf8) ။
    }

    Voice Update () {)
        // ဆာဗာ string data ကို data data ပို့ပါ = "ဟဲလို";
        Writer.writeline (ဒေတာ);
        Writer.flush ();

        // ဆာဗာ string ကိုတုန့်ပြန်ခြင်းဖြင့်ပြန်လာသောအချက်အလက်များကိုလက်ခံပါ။ Reader.Readline (),
        လျှင် (တုံ့ပြန်မှု! = null) {
            Debug.Log ("ရရှိသော:" တုံ့ပြန်မှု);
        }
    }

    Unapplicationquit ပျက်ပြယ် () {)
        // Connection ကို Connection.Close (),
        Reader.Close.Close ။
        stream.close ();
        client.close.Close ();
    }
}

အထက်ဖော်ပြပါ script သည် TCP protocol မှတဆင့်ဆာဗာနှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ပြီးဒေတာနှင့်စဉ်ဆက်မပြတ်အပြန်အလှန်ဆက်သွယ်သည်။ အမှန်တကယ်စီမံကိန်းများတွင် JSON သို့မဟုတ် Binary protocols ကဲ့သို့သောပိုမိုရှုပ်ထွေးသောဆက်သွယ်ရေးပရိုတိုကောများသည်မတူညီသောဂိမ်းလိုအပ်ချက်များကိုဖြည့်ဆည်းရန် encapsulated လုပ်နိုင်သည်။

မြင့်မားသောတစ်ပြိုင်နက်တည်းဆက်သွယ်ရေးကိုသဘောပေါက်ရန်အဓိကအချက်များ

မြင့်မားသောတစ်ပြိုင်နက်တည်းဖြစ်စဉ်များကိုကိုင်တွယ်ရန်ဆာဗာဘက်သည် Workerman ၏ပြတ်တောက်မှုဆိုင်ရာအင်္ဂါရပ်များကိုအသုံးချသင့်သည်။ ဖြစ်ရပ်မှန်မောင်းနှင်မှုယန္တရားများနှင့်ပိတ်ဆို့ခြင်းမဟုတ်သော I / O မှတစ်ဆင့်ဆက်သွယ်မှုတောင်းဆိုမှုများကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်နိုင်သည်။

ထို့အပြင် Systemvacity ၏စွမ်းဆောင်ရည်နှင့်တည်ငြိမ်မှုကိုပိုမိုတိုးတက်စေရန်ဆာဗာဘက်ရှိဝန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ဟန်ချက်ညီမှုနှင့်မက်ဆေ့ခ်ျကိုတန်းစီယန္တရားများကိုမိတ်ဆက်ရန်စဉ်းစားရန်ဖြစ်နိုင်သည်။

အကျဉ်းချုပ်

PHP, Unity3D နှင့် Workermaner ကိုပေါင်းစပ်ခြင်းအားဖြင့်မြင့်မားသောတစ်ပြိုင်နက်တည်းနှင့်စွမ်းဆောင်ရည်ရှိသောဂိမ်းဆာဗာကိုလျင်မြန်စွာတည်ဆောက်နိုင်သည်။ PHP သည်ယုတ္တိရှိသောအပြောင်းအလဲအတွက်တာ 0 န်ရှိပြီး Workermaner သည်ထိရောက်သောကွန်ယက်ဆက်သွယ်ရေးအတွက်တာဝန်ရှိသည်။ ဆင်ခြင်တုံတရားဆိုင်ရာအချက်အလက်ဆက်သွယ်ရေးဖွဲ့စည်းပုံနှင့်ယုတ္တိဗေဒကိုပြုပြင်ခြင်းသည်ယုတ္တိဗေဒစွမ်းဆောင်ရည်နှင့်အသုံးပြုသူအတွေ့အကြုံကိုအလွန်တိုးတက်စေလိမ့်မည်။

PHP နှင့် Unity3D တို့အကြားကွန်ယက်ဆက်သွယ်ရေးဗိသုကာကိုပိုမိုနားလည်ပြီးသင်၏ဂိမ်းဖွံ့ဖြိုးရေးစီမံကိန်းများအတွက်အဖိုးတန်သောရည်ညွှန်းချက်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။

မကြာသေးမီ ဆောင်းပါးများ