proxy သည် ဒေတာကို ပို့ပေးသည်။ သင့် ရေးခြင်း callback သည် မှားယွင်းသော တန်ဖိုးကို ပြန်ပေးသည်။ ထို့နောက် libcurl ရပ်တန့်ပြီး ပတ်ဝန်းကျင် ကုဒ်က “proxy မှ ဒေါင်းလုဒ် မအောင်မြင်မှု” နောက်တစ်ခုကို အစီရင်ခံသည်။

callback သည် အမှန်တကယ် ကိုင်တွယ်ခဲ့သော လက်ခံရရှိ byte အရေအတွက်ကို အစီရင်ခံရမည်။ အခြား အရေအတွက် ပြန်ပေးခြင်းသည် မအောင်မြင်မှုကို ပြသည်။ တမင်တကာ ပိတ်ဆို့သော ရေးခြင်း ဦးတည်ရာအတွက် အပိုင်းတစ်ခုသည် ဤသို့ ဖြစ်နိုင်သည်:

curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_WRITEFUNCTION,
    function ($handle, $chunk) use ($sink) {
        $written = fwrite($sink, $chunk);
        return $written === false ? 0 : $written;
    }
);

၎င်းသည် လက်ရှိ အပလီကေးရှင်းက handle နှင့် ရေးခြင်း ဦးတည်ရာကို ပိုင်ဆိုင်သည်ဟု ယူဆသည်။ မအောင်မြင်သော သို့မဟုတ် တိုတောင်းသော ရေးခြင်းသည် အပိုင်းတစ်ခုလုံး သိမ်းဆည်းပြီးဟု တိတ်တဆိတ် မဆိုဘဲ ရပ်တန့်သည်။ ပိတ်ဆို့မှုမရှိသော ဦးတည်ရာသည် သင့်လျော်သော buffer နှင့် ခေတ္တရပ်/ပြန်စ ဒီဇိုင်း လိုအပ်သည်; အပိုင်းငယ်က ၎င်းကို မပေးပါ။

ပြသသော စာလုံးများမဟုတ်ဘဲ byte များကို ရေတွက်ပါ။ ဒေတာသည် binary သို့မဟုတ် ဘက်စုံ byte စာသား အစဉ်၏ အစိတ်အပိုင်း ဖြစ်နိုင်သည်။ callback တစ်ခုသည် မည်သည့်အခါမျှ လိုင်းတစ်ခု၊ JSON စာရွက်စာတမ်းတစ်ခု သို့မဟုတ် ဝန်ဆောင်မှုမှ မက်ဆေ့ချ်တစ်ခု မဟုတ်ပါ။

တိုးပွားသော ခွဲခြမ်းစိတ်ဖြာမှုသည် callback များအကြား ၎င်း၏ ကိုယ်ပိုင် အခြေအနေ လိုအပ်သည်။ ဆန့်ကျင်ဘက်အားဖြင့် အပိုင်းတိုင်းကို ပြီးဆုံးသည်အထိ စုဆောင်းခြင်းသည် သေးငယ်သော ကန့်သတ် တုံ့ပြန်မှုအတွက် မှန်နိုင်သော်လည်း ကြီးမားသော သို့မဟုတ် အဆုံးမရှိသော စီးကြောင်းအတွက် မှတ်ဉာဏ် မူဝါဒ မဟုတ်ပါ။

ပို့ဆောင်မှု ရလဒ်နှင့် callback မအောင်မြင်မှု အထောက်အထားကို သိမ်းထားပါ။ တရားဝင် proxy လမ်းကြောင်း တည်ဆောက်ပြီးနောက် ဒေသတွင်း ဒစ် ချို့ယွင်းမှု သို့မဟုတ် parser ရပ်တန့်မှု ဖြစ်နိုင်သည်။ prefix ပြီးနောက် ရပ်လိုပါက ထို ရည်ရွယ်ချက်ရှိသော callback ရပ်တန့်မှုကို သီးခြား အမှတ်အသား ပြုပါ။ proxy လိပ်စာ ပြောင်းလဲခြင်းသည် ဒေတာ လက်ခံခြင်း ရပ်တန့်သွားသော ဦးတည်ရာကို ပြုပြင်၍ မရပါ။

ဆက်စပ်ဆောင်းပါးများ