အွန်လိုင်းဂိမ်းများကိုစဉ်ဆက်မပြတ်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူဂိမ်း 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 ကိုရေးနိုင်သည်။
အခြေခံ 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 တွင် 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 တို့အကြားကွန်ယက်ဆက်သွယ်ရေးဗိသုကာကိုပိုမိုနားလည်ပြီးသင်၏ဂိမ်းဖွံ့ဖြိုးရေးစီမံကိန်းများအတွက်အဖိုးတန်သောရည်ညွှန်းချက်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။