PHP အတွက် SWOOLE နှင့်အတူ SWOOLE နှင့်အတူပေါင်းစပ်ထားသော PHP အတွက်နည်းပညာဆိုင်ရာအကြံဥာဏ်များ
အွန်လိုင်းဂိမ်းများ 0 ယ်လိုအားမြင့်တက်လာခြင်းဖြင့်ဂိမ်းဆာဗာ၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်နိုင်စွမ်းသည်အထူးအရေးကြီးသည်။ အစဉ်အလာအရ PHP ဖွဲ့စည်းပုံအခြေခံဥပဒေသည်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုရင်ဆိုင်ရသောအခါအတော်လေးခက်ခဲသည်။ အဓိကအားဖြင့်တောင်းဆိုမှုတစ်ခုစီသည် script ကိုပြန်လည်ခွဲခြမ်းစိတ်ဖြာရန်နှင့်လုပ်ငန်းစဉ်ကိုစတင်ရန်လိုအပ်သည်။ ဤ mode သည်အချိန်မှန်လိုအပ်ချက်များနှင့်အတူအခြေအနေများနှင့်မသင့်တော်ပါ။
SWOOLE ၏အားသာချက်များ - PHP သို့အကီဖရွန်နှင့်တစ်ပြိုင်နက်တည်းစွမ်းရည်ကိုယူဆောင်လာပါ
Swoole သည်စွမ်းဆောင်ရည်မြင့်ကွန်ယက်ဆက်သွယ်ရေးမူဘောင်ဖြစ်သည်။ ၎င်းသည် PHP သည် PHP ကို Resident Memory နှင့် Coroutine စွမ်းရည်ရှိသည့်သံမဏိစွမ်းဆောင်နိုင်မှုနှင့် coroutine စွမ်းရည်များဖြင့်ပြန်လည်နေထိုင်ရန်နှင့် Coroutine Capabiles တို့၏အလှည့်ကျ PHP ၏ "တောင်းဆိုမှုတစ်ခု" ၏ "တစ်ပြိုင်နက်တည်းဆက်သွယ်ရေး" နှင့်အွန်လိုင်းဂိမ်းများနှင့်အွန်လိုင်းဂိမ်းများကိုတည်ဆောက်ရန်သင့်လျော်သည်။
SWOOLE installation နှင့်ပတ်ဝန်းကျင် configuration ကို
SWOOLE ကိုစတင်အသုံးပြုရန်သင်၏ Extension Module ကိုပထမဆုံးထည့်သွင်းရန်လိုအပ်သည်။ Terminal တွင်အောက်ပါ command ကို Execute:
pecl install swoole
ထည့်သွင်းမှုပြီးပြည့်စုံပြီးနောက်တိုးချဲ့မှုကိုဖွင့်ရန်အောက်ပါ configuration ကို Php.ini တွင်ထည့်ပါ။
extension=swoole
လက်တွေ့ကျတဲ့ဥပမာ - ရိုးရှင်းတဲ့ websocket ဂိမ်းစကားပြောခန်းကိုတည်ဆောက်ပါ
အောက်ဖော်ပြပါသည် SWOOLE တွင်တည်ဆောက်ထားသော Sifts-Side Code Project တစ်ခုဖြစ်ပြီးအွန်လိုင်းစကားပြောခန်းများသို့မဟုတ်ဂိမ်းခန်းများကဲ့သို့သောအချိန်နှင့်တပြေးညီဆက်သွယ်ရေးအခြေအနေများအတွက်သင့်တော်သည်။
<?php
// aWebSocketဆာဆာ
$server = new swoole_websocket_server("0.0.0.0", 9501);
// စောင့်ရေှာက်WebSocketဆက်သွယ်မှုပွင့်လင်းဖြစ်ရပ်
$server->on('open', function (swoole_websocket_server $server, $request) {
echo "new client connected: {$request->fd}\n";
});
// စောင့်ရေှာက်WebSocketမက်ဆေ့ခ်ျဖြစ်ရပ်များ
$server->on('message', function (swoole_websocket_server $server, $frame) {
echo "received message: {$frame->data}\n";
// ဖောက်သည်များအားလုံးကိုထုတ်လွှင့်သောစာများ
foreach ($server->connections as $fd) {
$server->push($fd, $frame->data);
}
});
// စောင့်ရေှာက်WebSocketဆက်သွယ်မှုအနီးရှိဖြစ်ရပ်
$server->on('close', function ($ser, $fd) {
echo "client-{$fd} is closed\n";
});
// 启动ဆာဆာ
$server->start();
ပြေးနှင့် debug
အထက်ပါကုဒ်ကိုဖွင့်ပြီးနောက်သင်သည် (ဥပမာ - browser console, postman console သို့မဟုတ် debotman or debugging tool) ကိုသင်မက်ဆေ့ခ်ျပို့ခြင်းနှင့်လက်ခံခြင်းအတွက်ဝက်ဘ်ဆိုက်တစ်ခု၏ console, postman or debugging tool) ကိုချိတ်ဆက်နိုင်သည်။
asynchronous မော်ဒယ်၌မှတ်သားရန်အရာ
SWOSE သည်ဖြစ်ရပ်တစ်ခုမောင်းနှင်သောဗိသုကာပညာရပ်အပေါ်အခြေခံပြီးကတည်းက developer များသည်ယုတ္တိဗေဒတည်ဆောက်သည့်အခါအဓိကလုပ်ငန်းစဉ်ကိုပိတ်ဆို့ခြင်းမပြုသင့်ပါ။ ဒေတာဘေ့စ်မေးမြန်းချက်များသို့မဟုတ်ရှုပ်ထွေးသောတွက်ချက်မှုများကဲ့သို့သောအချိန်ကာလစားသုံးခြင်းလုပ်ငန်းများအတွက် `$ server-> task ()` `throughput ကိုတိုးတက်စေရန်` `` `` `Assynchronous Task Distribution ကိုအသုံးပြုရန်အကြံပြုသည်။
ပိုပြီး Swoole features တွေဟာရှုပ်ထွေးတဲ့အခြေအနေတွေ
SWOSE သည် Websocksces 0 န်ဆောင်မှုများဖြင့်ကန့်သတ်ထားသည်မဟုတ်သော်လည်း TCP / UDP ဆာဗာများ, ဥပမာအားဖြင့် Noted Memory သည်အစိုးရစီမံခန့်ခွဲမှုများကိုဆက်သွယ်မှုအမျိုးမျိုးဖြင့်အကောင်အထည်ဖော်ရန် (သို့) ဂိမ်းပြည်နယ်ကို timer ဖြင့်မွမ်းမံရန်အသုံးပြုနိုင်သည်။
အကျဉ်းချုပ်
Swoole extension ကိုမိတ်ဆက်ပေးခြင်းအားဖြင့် PHP သည်ရိုးရာထပ်တူပြုခြင်းကိုပိတ်ဆို့ခြင်းဖြင့်အကန့်အသတ်ဖြင့်သာအကန့်အသတ်ဖြင့်သာကန့်သတ်မထားတော့ပါ။ အွန်လိုင်းဂိမ်းလောင်းမှုတွင် SWOOLE သည်စွမ်းဆောင်ရည်သိသိသာသာတိုးတက်လာရုံသာမကထုတ်လုပ်သူများကိုပိုမိုကောင်းမွန်သောအတိုင်းအတာအထိပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။