ဆံပင်ကောက်ကောက် သည် HTTP တောင်းဆိုမှုများအတွက် PHP ကိုအသုံးပြုသောအခါအသုံးအများဆုံးစာကြည့်တိုက်များထဲမှတစ်ခုဖြစ်သည်။ ၎င်းမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ရရှိနိုင်သည့်သို့မဟုတ်တောင်းဆိုမှုများကိုပေးပို့ခြင်းကဲ့သို့သောလုပ်ငန်းဆောင်တာအမျိုးမျိုးကိုအကောင်အထည်ဖော်နိုင်သည်။ စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည် HTTP Long Connections ၏အယူအဆကိုအချိန်တိုင်းပြန်လည်တည်ဆောက်ခြင်းကိုရှောင်ရှားရန်သတ်မှတ်ထားသော connection ကိုပြန်လည်အသုံးပြုနိုင်သည်။
PHP တွင် curl_upkeep () တွင် http Long Connections များကိုသိမ်းဆည်းထားသည့် function တစ်ခုဖြစ်သည်။ ဒါကြောင့် curl_upkeep () က တကယ်ကိုဖုန်းခေါ်ဆိုခြင်းအားဖြင့် HTTP Long Connection ကိုတကယ်သိမ်းထားနိုင်သလား။ ဤဆောင်းပါးသည်ဤပြ issue နာကိုအသေးစိတ်ဆွေးနွေးပါမည်။
HTTP Long Connection (Keep- အသက်ရှင်ခြင်း) သည် HTTP session တစ်ခုတွင်တောင်းဆိုမှုများနှင့်တုံ့ပြန်မှုများရှိတောင်းဆိုမှုများကိုပေးပို့ရန်နှင့်လက်ခံရန် 0 န်ဆောင်မှုခံယူသူနှင့်ဆာဗာတစ်ခုအကြားဆက်နွယ်မှုကိုခွင့်ပြုသည့်နည်းပညာဖြစ်သည်။ ရိုးရာ HTTP protocol သည်ပေးပို့သောတောင်းဆိုမှုတိုင်းအတွက် TCP ဆက်သွယ်မှုအသစ်ကိုတည်ဆောက်ပြီးတောင်းဆိုမှုကိုပေးပို့ပြီးနောက်ချက်ချင်းဆက်သွယ်မှုကိုပိတ်ထားသည်။ HTTP Long Connections သည်မကြာခဏ connection ကိုတည်ထောင်ခြင်းနှင့်ပိတ်ခြင်း၏ overhead ကိုရှောင်ရှားနိုင်ပြီးစွမ်းဆောင်ရည်တိုးတက်စေရန်နှင့် latency ကိုလျှော့ချနိုင်သည်။
curl_upkeep () () curl connection တက်ကြွစွာလုပ်ဆောင်ရန်သေချာသည့် function တစ်ခုဖြစ်သည်။ ၎င်း၏အဓိကရည်ရွယ်ချက်မှာအချိန်ကြာမြင့်စွာတောင်းဆိုမှုများမရှိပါကဆက်သွယ်မှုကိုတားဆီးရန်ဖြစ်သည်။ ဆက်နွယ်မှုကိုဆက်လက်လုပ်ဆောင်ခြင်းအားဖြင့်နောက်ဆက်တွဲတောင်းဆိုမှုများသည်ဆက်သွယ်မှုကိုပြန်လည်တည်ဆောက်ရန်မလိုအပ်ပါ။
curl_upkeep ကို သုံး. ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
<?php
// ဖြစ်ပေါ်လာခြင်း cURL ရုံးထိုင်အချိန်ကာလ
$ch = curl_init();
// တည်ဆောက်သည် cURL ရွေးချယ်စရာများ
curl_setopt($ch, CURLOPT_URL, 'https://m66.net/some-endpoint');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // တည်ဆောက်သည်超时时间
// ပထမတောင်းဆိုမှုကိုလုပ်ပါ
$response = curl_exec($ch);
// တယ်လီဖုန်းဆက်ခြင်း curl_upkeep() ချိတ်ဆက်နေပါ
curl_upkeep($ch);
// ဒုတိယတောင်းဆိုမှုကိုလုပ်ပါ,ဆက်သွယ်မှုကိုပြန်လည်အသုံးပြုလိမ့်မည်
curl_setopt($ch, CURLOPT_URL, 'https://m66.net/another-endpoint');
$response2 = curl_exec($ch);
// 关闭ရုံးထိုင်အချိန်ကာလ
curl_close($ch);
// output ကိုတုံ့ပြန်မှု
echo $response;
echo $response2;
?>
အထက်ပါကုဒ်တွင်ကျွန်ုပ်တို့သည် Curl_settopt () မှတစ်ဆင့်တောင်းဆိုထားသော URL နှင့်အခြားရွေးချယ်စရာများကိုပထမ ဦး ဆုံးအစပြုသည်။ ထို့နောက်ကျွန်ုပ်တို့သည် curl_upkeep ($ ch) ဟုခေါ်ဆိုခြင်းဖြင့်ဆက်သွယ်မှုကိုထိန်းသိမ်းထားပါ။
curl_upkeep () ကိုခေါ်သည့်အခါဆက်သွယ်မှုကိုဆက်လက်ထိန်းသိမ်းထားသည်။ သို့သော်၎င်းသည်၎င်းကိုတစ်ချိန်ကသာဆက်သွယ်မှုကိုအမြဲတမ်းဖွင့်ထားလိမ့်မည်ဟုမဆိုလိုပါ။ HTTP Long Connections ၏ဇွဲရှိခြင်းသည် server-side settings, network undermal ိုင် envice နှင့် Intead Inteal Time အပါအ 0 င်အချက်များအမျိုးမျိုးကြောင့်ဖြစ်သည်။
ဆာဗာဘေးထွက်ချိန်ညှိချက်များ:
ဆာဗာသည်များသောအားဖြင့်အချိန်ကုန်အချိန်ကိုသတ်မှတ်လေ့ရှိပြီးဤအချိန်အတောအတွင်းဆက်သွယ်မှုကိုပိတ်လိမ့်မည်။ 0 န်ဆောင်မှုခံယူသူသည်တက်ကြွစွာရှိနေဆဲဖြစ်သော်လည်း server သည်ဆက်သွယ်မှုကိုတက်ကြွစွာပိတ်ထားနိုင်သည်။ ထို့ကြောင့် curl_upkeep () ကိုခေါ်ခြင်းသည် connection ကိုမပိတ်နိုင်ကြောင်းအာမခံနိုင်မည်မဟုတ်ပါ။
ဆက်သွယ်မှုရေကူးကန်နှင့်မြှောက်ခြင်းများ -
သင်တောင်းဆိုမှုများအတွက်ဆက်သွယ်မှုကိုပြန်လည်အသုံးပြုလိုပါကကောက်ကောက်ကိုအသုံးပြုသောအခါသင်ယေဘုယျအားဖြင့် connection pooling ကိုဖွင့်ရန်လိုအပ်သည်။ ၎င်းကိုပုံမှန်အားဖြင့် curl_multi_ * လုပ်ဆောင်ချက်များအားဖြင့်အောင်မြင်သည်။ curl_upkeep () connection pooling ကိုတိုက်ရိုက်ကိုင်တွယ်ခြင်းမရှိပါက၎င်းသည်လက်ရှိဆက်သွယ်မှု၏လုပ်ဆောင်မှုကိုဆက်လက်ထိန်းသိမ်းထားသည်။
ဆက်သွယ်မှုအတွက်အခမဲ့အချိန်:
အကယ်. ဆက်သွယ်မှုသည်အချိန်ကြာမြင့်စွာမပြုလုပ်သောအခါ server ဘက်သို့မဟုတ်အလယ်အလတ်တန်းစား proxy သည်ဆက်သွယ်မှုကိုပိတ်ထားနိုင်သည်။ ထို့ကြောင့် curl_upkeep () ကို client ကို client ကိုခေါ်လျှင်ပင်, ကြာမြင့်စွာအဘို့အပျင်းရိသော connections ကို server သို့မဟုတ် proxy ကိုပိတ်ထားဆဲဖြစ်သည်။
curl_upkeep () သည် HTTP Long Connections ကိုတက်ကြွစွာဆက်လက်လုပ်ဆောင်နိုင်သော်လည်း၎င်းသည်ရည်ရွယ်ချက်မဟုတ်ပါ။ ၎င်းသည် "connection ကိုမပြတ်မတောက်ထား" နိုင်, server-side configuration, network underration and ား, ထို့ကြောင့် curl_upkeep () သည် ခေါ်ဆိုမှုတစ်ခုအပြီးတွင်ဆက်သွယ်မှုသည်ဘယ်သောအခါမျှမနီးတော့ပါဟုသေချာပေါက်မအာမခံနိုင်ပါ။ သင်ပိုမိုအဆင့်မြင့် connection ပြန်လည်သုံးသပ်ခြင်းယန္တရားတစ်ခုလိုအပ်ပါက curl ၏ connection pool စီမံခန့်ခွဲမှုကိုအသုံးပြုခြင်းသို့မဟုတ် HTTP Long Connections ကိုစီမံရန်ပိုမိုအထူးပြုစာကြည့်တိုက်ကိုအသုံးပြုခြင်းကိုသင်စဉ်းစားနိုင်သည်။
Curl_upkeep () ၏အခန်းကဏ် and နှင့်ကန့်သတ်ချက်များကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။