လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP asynchronous ဆက်သွယ်ရေးနှင့်မက်ဆေ့ခ်ျအကောင်အထည်ဖော်ရေးလမ်းညွှန် - ဆပ်ပြာနှင့် Rabbitmq အမှန်တကယ်တိုက်ခိုက်ရေး

PHP asynchronous ဆက်သွယ်ရေးနှင့်မက်ဆေ့ခ်ျအကောင်အထည်ဖော်ရေးလမ်းညွှန် - ဆပ်ပြာနှင့် Rabbitmq အမှန်တကယ်တိုက်ခိုက်ရေး

M66 2025-10-07

နိဒါန်း

မျက်မှောက်ခေတ်အင်တာနက်အပလီကေးရှင်းများတွင်ပြတ်ပြတ်သားသားဆက်သွယ်ရေးနှင့်သတင်းစကားတန်းစီများသည်ထိရောက်သောစနစ်များကိုနားလည်သဘောပေါက်ရန်အရေးကြီးသောနည်းလမ်းများဖြစ်သည်။ ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသောဆာဗာဘက်ဘာသာစကားတစ်ခုအနေဖြင့် PHP သည်ဤလုပ်ဆောင်မှုများကိုထောက်ခံရန်ကြွယ်ဝသောစာကြည့်တိုက်များနှင့် extensions များကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည် PHP နှင့် SOAP ကို ​​အသုံးပြု. allynchronous ဆက်သွယ်ရေးကိုအကောင်အထည်ဖော်ရန်နှင့် RabbitMQ မှတစ်ဆင့်မည်သို့အကောင်အထည်ဖော်ရမည်နှင့်အပြည့်အဝကုဒ်များကိုအကောင်အထည်ဖော်ရန်နှင့်ကုဒ်များကိုပုံဖော်ပြေစာစောင်များကိုအကောင်အထည်ဖော်ရန်အတိမ်အနက်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။

ဆပ်ပြာကဘာလဲ

ဆပ်ပြာ (ရိုးရှင်းသောအရာဝတ်ထု access protocol) သည်ဖြန့်ဝေထားသောစနစ်များတွင်လျှောက်လွှာများအကြားဆက်သွယ်ပြောဆိုရန်အသုံးပြုသော XML အခြေပြုစာတိုပေးပို့ရေးပရိုတိုကောတစ် ဦး ဖြစ်သည်။ ၎င်းသည် HTTP, SMTP နှင့်အခြား protocols များမှတဆင့်ဂီယာကိုထောက်ပံ့ပေးပြီး asynchronous ဆက်သွယ်ရေးနှင့်မက်ဆေ့ခ်ျပေါ်ပေါက်ရေးလုပ်ဆောင်မှုများကိုနားလည်သဘောပေါက်ရန်ဝက်ဘ် 0 န်ဆောင်မှုများတွင်အသုံးပြုသည်။

ပြတ်တောင်းပြတ်တောင်းဆက်သွယ်မှုကိုအကောင်အထည်ဖော်ရန် PHP နှင့်ဆပ်ပြာကိုသုံးပါ

ဆပ်ပြာဖြန့်ဝေခြင်းများကိုအရင်ထည့်သွင်းခြင်းနှင့် configure လုပ်ခြင်းကိုပထမ ဦး စွာထည့်သွင်းပါ။ Configuration ကိုဖြည့်စွက်ရန် Php.ini ဖိုင်တွင်ဆပ်ပြာတိုးချဲ့ခြင်းကို Enable လုပ်ပါ။ တိကျသောအဆင့်များအရတရားဝင် PHP စာရွက်စာတမ်းများကိုဖတ်ရှုပါ။

ဆပ်ပြာဆာဗာတစ်ခုဖန်တီးပါ

<?php
require_once('lib/nusoap.php');

$server = new soap_server();
$server-> configurewsdl (asyncserver &#39;,&#39; URN: asyncserver &#39;);

my_async_function ($ parameter) function
{
    // ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးအတွက်ယုတ္တိဗေဒ // ...
    &#39;အောင်မြင်မှု&#39; ကိုပြန်ပို့ပါ။
}

$ ဆာဗာ -> မှတ်ပုံတင်ခြင်း (&#39;my_async_Function&#39;,
    Array (&#39;Parameter&#39; => &#39;XSD: string&#39;),
    Array (&#39;ReXt&#39; => &#39;XSD: string&#39;),
    &#39;URN: asyncserver&#39;,
    &#39;URN: asyncserver # my_async_Function&#39;,
    &#39;RPC&#39;,
    &#39;encoded&#39;,
    &#39;ငါ့ Async function&#39;
);

$ ဆာဗာ -> 0 န်ဆောင်မှု (file_get_contents (php: // input &#39;));
>

ဆပ်ပြာ client တစ်ခုဖန်တီးပါ

<?php
require_once('lib/nusoap.php');

$client = new nusoap_client('http://localhost/async_server.php?wsdl', 'wsdl');
$response = $client-> ခေါ်ဆိုမှု (&#39;my_async_function&#39;, Array (Parameter &#39;=>&#39; Hello &#39;)),

Print_R ($ တုံ့ပြန်မှု);
>

အထက်ပါကုဒ်သည် Nusoap_client မှတစ်ဆင့်ဆပ်ပြာသုံးစွဲမှုကိုဖန်တီးပြီး Php espynchronous ဆက်သွယ်ရေးကိုနားလည်ရန်ဆာဗာ၏ပြတ်တောက်မှုဆိုင်ရာလုပ်ဆောင်မှုကိုပြုလုပ်သည်။

PHP နှင့် SOAP ကိုအသုံးပြုပြီးမက်ဆေ့ခ်ျစီတန်းမှုများကိုအကောင်အထည်ဖော်ပါ

မက်ဆေ့ခ်ျ Queue ဆိုသည်မှာ applications များအကြားမက်ဆေ့ခ်ျများအကြားမက်ဆေ့ခ်ျများအကြားမက်ဆေ့ခ်ျများဖြတ်သန်းရန်အတွက်ယန္တရားတစ်ခုဖြစ်သည်။ PHP တွင်သင်သည် Third-party libbaries များကိုမက်ဆေ့ခ်ျများအပေါ်အကောင်အထည်ဖော်ရန်ယဗ္ဗာင်စာကြည့်တိုက်များနှင့်သုံးနိုင်သည်။

RabbitMQ ကို install လုပ်ပြီး configure လုပ်ပါ

PHP ပတ် 0 န်းကျင်ရှိ RabbitMQ ကိုထည့်သွင်းပြီး configure လုပ်ပါ။

ထုတ်လုပ်သူများနှင့်စားသုံးသူများကိုဖန်တီးပါ

<?php
require_once('vendor/autoload.php');

use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection-> Channel ();

$ Queue = &#39;async_queue&#39;;
$ Channel-> Queue_Declare ($ Queue, false false, false false);

$ message = အသစ် amqpmessage အသစ် (&#39;ဟဲလို, မက်ဆေ့ခ်ျ!&#39;);
$ Channel-> Basic_Publish ($ Message, &#39;, $ Queue),

$ channel-> အနီးကပ် ();
$ ဆက်သွယ်မှု -> အနီးကပ် ();
>
<?php
require_once('vendor/autoload.php');

use PhpAmqpLib\Connection\AMQPStreamConnection;

$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection-> Channel ();

$ Queue = &#39;async_queue&#39;;
$ Channel-> Queue_Declare ($ Queue, false false, false false);

$ Channel-> Basic_consume ($ Queue &#39;&#39;, မှားယွင်းသော, မှားယွင်းသော, မှားယွင်းသော, မှားယွင်းသော, မှားယွင်းသော, function ($ msg)
    ပဲ့တင်သံ "လက်ခံရရှိခဲ့သည်။ $ msg-> ခန္ဓာကိုယ်။ "\ n";
    $ msg-> ack ();
});

နေစဉ် ($ channel-is_consuming ()) {
    $ channel->> စောင့်ဆိုင်း;
}

$ channel-> အနီးကပ် ();
$ ဆက်သွယ်မှု -> အနီးကပ် ();
>

Phpamqplib စာကြည့်တိုက်မှတစ်ဆင့် RabbitMQ ဆက်သွယ်မှုကို ဖန်တီး. Queue ကိုသတ်မှတ်ပါ။ ထုတ်လုပ်သူသည် Basic_Publish မှတစ်ဆင့်စာများပေးပို့ခြင်းနှင့်စားသုံးသူသည် basic_consume မှတစ်ဆင့်စာတိုများနှင့်စာရင်းဇယားများကိုစာရင်းပြုစုထားသည်။

နိဂုံးချုပ်အားဖြင့်

PHP နှင့်ဆပ်ပြာကိုပေါင်းစပ်ခြင်းသည်ပြတ်တောင်းပြတ်တောင်းဆက်သွယ်မှုကိုအလွယ်တကူရရှိနိုင်ပါသည်။ ဤဆောင်းပါးသည်အချက်အလက်များအားဖြည့်ဆည်းရှင်များကပြတ်ပြတ်သားသားလုပ်ဆောင်မှုများနှင့်တကယ့်စီမံကိန်းများအတွက်သတင်းပို့သည့်လုပ်ငန်းဆောင်တာများကိုလျင်မြန်စွာအကောင်အထည်ဖော်ရန်အတွက်အပြည့်အဝနမူနာကုဒ်များပေးသည်။ အမျိုးမျိုးသောစီမံကိန်းလိုအပ်ချက်များကိုပေါ် မူတည်. အခြားတတိယပါတီစာကြည့်တိုက်များကိုစနစ်ဗိသုကာနှင့်စွမ်းဆောင်ရည်ကိုအကောင်းဆုံးရွေးချယ်ရန်ရွေးချယ်နိုင်သည်။

မကြာသေးမီ ဆောင်းပါးများ