WebSident သည် TCP ဆက်သွယ်မှုတစ်ခုတည်းတွင် Full-Duplex ဆက်သွယ်မှုအတွက် protocol တစ်ခုဖြစ်ပြီးအချိန်နှင့်တပြေးညီဆက်သွယ်ရေးလိုအပ်သည့် application အခြေအနေများတွင်ကျယ်ပြန့်စွာအသုံးပြုသည်။ Websocket 0 န်ဆောင်မှုများအကောင်အထည်ဖော်မှုတွင် connection စီမံခန့်ခွဲမှုသည်အထူးသဖြင့်ဆက်နွယ်မှုလိုအပ်သည်။ ဤဆောင်းပါးသည် Websocket Service တွင် Connection interrupt ယန္တရားကိုအကောင်အထည်ဖော်ရန် PHP ၏ Kill Function ကိုမည်သို့အသုံးပြုရမည်ကိုအာရုံစိုက်မည်။
WebSound server နှင့် client အကြားဆက်သွယ်မှုကိုတည်ဆောက်ရာတွင်ဝက်ဘ်ဆိုက်လက်ဆွဲနှုတ်ဆက်ခြင်းကိုပထမဆုံးပြုလုပ်လိမ့်မည်။ လက်ဆွဲနှုတ်ဆက်ပြီးနောက်အောင်မြင်သောဆက်သွယ်ရေးအတွက် 0 န်ဆောင်မှုခံယူသူနှင့်ဆာဗာအကြားဆက်နွယ်မှုရှိသောဆက်သွယ်မှုကိုတည်ဆောက်လိမ့်မည်။ ဤကိစ္စတွင်, အရင်းအမြစ်များကိုဖြုန်းတီးခြင်းနှင့်ကွန်ရက်ပိတ်ဆို့မှုကိုဖြစ်ပေါ်စေခြင်းနှင့်ကွန်ရက်ပိတ်ဆို့မှုကိုဖြစ်ပေါ်စေခြင်းများကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း။
PHP ရှိ လူသတ်မှု function ကိုသတ်မှတ်ထားသောလုပ်ငန်းစဉ်သို့အချက်ပြမှုများပေးပို့ရန်အသုံးပြုသည်။ ၎င်း၏အခြေခံ Syntax ပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
kill(int $pid, int $signal): bool
$ PID : signal ကိုပို့ရန် process ID ။
$ signal : signal type, များသောအားဖြင့် system ၏ကြိုတင်သတ်မှတ်ထားသောအချက်ပြစဉ်ဆက်မပြတ်။ Sigterm ကို လုပ်ငန်းစဉ်ကိုရပ်ဆိုင်းရန်အသုံးပြုသည်။ Sigkill သည် လုပ်ငန်းစဉ်ကိုရပ်ဆိုင်းရန်အသုံးပြုသည်။
Kank function ကို Websocket Service တွင်အသုံးပြုသောအခါဂိုးသည် 0 က်ဘ်ဆိုက်ချိတ်ဆက်မှု၏သက်ဆိုင်ရာလုပ်ငန်းစဉ်ကိုအနှောင့်အယှက်ပေးသည့်အခါတံခါးပိတ်ဆက်သွယ်မှုတစ်ခုရရှိရန်အတွက်သင့်တော်သော signection တစ်ခုပေးပို့ခြင်းဖြင့်သက်ဆိုင်ရာလုပ်ငန်းစဉ်ကိုနှောင့်ယှက်ရန်ဖြစ်သည်။
Websond applications များတွင်အောက်ပါအခြေအနေများတွင် connection connections ပြတ်တောက်ခြင်းများသည်များသောအားဖြင့်ဖြစ်သည်။
client disonnection - 0 န်ဆောင်မှုခံယူသူသည်ဆက်သွယ်မှုကိုတက်ကြွစွာပိတ်ပစ်လိုက်သည်။
ဆာဗာကိုတက်ကြွစွာဆက်နွယ်မှု - ဆာဗာသည် 0 န်ဆောင်မှုခံယူသူမှတက်ကြွစွာဆက်သွယ်နိုင်သည်။
Websoet server ပေါ်တွင် client function မှတဆင့်အချို့သော client တစ်ခု၏ဆက်သွယ်မှုကိုနှောင့်ယှက်နိုင်သည်။ Websocket Service သည် PHP ကိုအခြေခံသည်ကိုယူဆသည်မှာ၎င်းသည် webscess connection များကိုစီမံရန်အတွက် RepphiPP သို့မဟုတ် Swoole စာကြည့်တိုက်များကိုအသုံးပြုသည်။ ဆက်သွယ်မှုတစ်ခုစီအတွက်ထူးခြားသည့် process ID (PID) ကိုကျွန်ုပ်တို့ သတ်မှတ်. ဆက်သွယ်မှုပိတ်ခြင်းကိုထိန်းချုပ်ရန်ဤ PID ကိုအသုံးပြုနိုင်သည်။
0 န်ဆောင်မှုချိတ်ဆက်မှုနှင့်သက်ဆိုင်သော Pid ကိုကျွန်ုပ်တို့ရရှိခဲ့ကြပြီးလျှင်အဆက်ဖြတ်ရန် လူသတ်မှု function ကိုသုံးနိုင်သည်ဆိုပါစို့။
<?php
// အာရုံဖော်ခြင်းWebSocketချိတ်ဆက်ထားသောPID
$pid = 12345; // ဤPIDဖြစ်သင့်သည်WebSocketclient connection process သည် 0 န်ဆောင်မှုတွင်စီမံသည်ID
// အသုံးပြုkillအဆက်ပြတ် function ကို
if (kill($pid, SIGTERM)) {
echo "ဆက်သွယ်မှုအောင်မြင်စွာကြားဖြတ်ခဲ့တာဖြစ်ပါတယ်";
} else {
echo "disconnect ပျက်ကွက်";
}
?>
ဒီဥပမာမှာ sigterm signal ကိုပို့ခြင်းဖြင့်ဆက်သွယ်မှုကိုချောချောမွေ့မွေ့ကြားဖြတ်။ Sigterm သည်လုပ်ငန်းစဉ်ကိုရပ်ဆိုင်းရန်တောင်းဆိုသည့်အချက်ပြမှုတစ်ခုဖြစ်ပြီး၎င်းသည် sigkill နှင့်နှိုင်းယှဉ်လျှင်မရပ်မှီရပ်စဲခြင်းမပြုမီသန့်ရှင်းရေးလုပ်ငန်းအချို့ပြုလုပ်ရန်လုပ်ဆောင်သည်။
အချက်ပြရွေးချယ်ခြင်း - Sigterm အချက်ပြမှုများကိုအသုံးပြုခြင်းသည်အရင်းအမြစ်များကိုသန့်ရှင်းရေးလုပ်ရန်အခွင့်အရေးကိုပေးလိမ့်မည်။ ထို့ကြောင့်ယေဘုယျအားဖြင့် Sigterm အစား Sigterm ကို အသုံးပြုရန်အကြံပြုသည်။
အမှားကိုင်တွယ်ခြင်း - လူသတ်မှုကို အသုံးပြုသောအခါသင်သည်မတည်ရှိသည့်လုပ်ငန်းစဉ်များသို့ဆိုင်းဘုတ်များပေးပို့ခြင်းမှကာကွယ်ရန်ပစ်မှတ်ထားခြင်းဖြစ်ခြင်းရှိမရှိစစ်ဆေးခြင်းကဲ့သို့သောပြန်လာသည့်တန်ဖိုးများနှင့်အမှားများကိုကိုင်တွယ်ရမည်။
အရင်းအမြစ်စီမံခန့်ခွဲမှု - အဆက်ဖြတ်ပြီးနောက်သက်ဆိုင်ရာအရင်းအမြစ်များ (ထိုကဲ့သို့သောမှတ်ဉာဏ်, ဒေတာဘေ့စ်စသည့်ဆက်သွယ်မှုစသည်) ကိုရှောင်ရှားရန်သေချာစေပါ။
နှလုံးခုန်ခြင်း - ဆက်သွယ်မှု၏လုပ်ဆောင်မှုနှင့်အချိန်နှင့်တပြေးညီသဘောသဘာဝကိုသေချာစေရန်ဆာဗာသည် client ကိုပုံမှန်စာဖြင့်ပို့နိုင်သည်။ အကယ်. client သည်တုံ့ပြန်မှုမရှိပါက connection ကိုနှောင့်ယှက်ရန် သတ်ရန် function ကိုသင်အသုံးပြုနိုင်သည်။
ခြွင်းချက်အထောက်အထားများ - ဝက်ဘ်ဆိုက်ပိတ်ဆို့ခြင်းသည် connection သည် connection ကိုအချိန်ကုန်ခြင်းသို့မဟုတ်ခြွင်းချက်များဖြစ်ပေါ်ကြောင်းတွေ့ရှိပါကဆက်သွယ်မှုကိုချက်ချင်းပိတ်ထားနိုင်ပြီး System အရင်းအမြစ်များကိုဖြန့်ချိနိုင်သည်။
PHP ၏ Kill Function ကိုအသုံးပြုခြင်းသည်ဝက်ဘ်ဆိုက်ချိတ်ဆက်မှုများ၏ကြားဖြတ်ဆက်သွယ်မှုယန္တရားကိုထိရောက်စွာစီမံနိုင်သည်။ သတ်သတ်မှတ်မှတ်ဖြစ်စဉ်များသို့အချက်ပြမှုများကိုပေးပို့ခြင်းအားဖြင့် websockeScess 0 န်ဆောင်မှုများနှင့်အရင်းအမြစ်များကိုထိရောက်စွာအသုံးချခြင်းကိုသေချာစေရန်ကွဲပြားခြားနားသောအခြေအနေမျိုးတွင်အဆက်ဖြတ်ခြင်းဖြင့်အောင်မြင်နိုင်သည်။ ဤယန္တရားကိုအကောင်အထည်ဖော်သောအခါ signal selection ရွေးချယ်ခြင်းကဲ့သို့သောအချက်များ, အမှားကိုင်တွယ်ခြင်းနှင့်အရင်းအမြစ်စီမံခန့်ခွဲမှုစနစ်၏ကြံ့ခိုင်မှုကိုသေချာစေရန်စဉ်းစားရန်လိုအပ်သည်။