လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Yii2 သည် Workerman နှင့်ချိတ်ဆက်ရန် Workerman နှင့် ပူးပေါင်း. အသေးစိတ်သင်ခန်းစာ

Yii2 သည် Workerman နှင့်ချိတ်ဆက်ရန် Workerman နှင့် ပူးပေါင်း. အသေးစိတ်သင်ခန်းစာ

gitbox 2025-07-15

Yii2 သည် Workerman ကိုဆက်သွယ်ရန် Workerman နှင့် ပူးပေါင်း. weberman

Yii2 သည်စွမ်းဆောင်ရည်မြင့်မားသော PHP framework ဖြစ်သည်။ Workermaner သည်ပြတ်တောက်သောစွမ်းဆောင်ရည်မြင့် PHP Socket Framework ဖြစ်သည်။ ဤမူဘောင်နှစ်ခုကိုပေါင်းစပ်ခြင်းဖြင့် developer များသည်ကွန်ရက်ဆက်သွယ်ရေးစွမ်းရည်ကိုလျင်မြန်စွာအကောင်အထည်ဖော်ရန်ကူညီနိုင်သည်။ ဤဆောင်းပါးသည် Workerman ကို Workerman ကို Workerman ကို Workerman ကိုကွန်ယက်ချိတ်ဆက်မှုအားဖြည့်ဆည်းရန်မည်သို့ပေါင်းစပ်ရမည်ကိုဖော်ပြရန်အသုံးပြုလိမ့်မည်။

Yii2 ကို install လုပ်ပါ

ပထမ ဦး စွာ Yii2 မူဘောင်ကို install လုပ်ရန်လိုအပ်သည်။ YII2 ကိုအောက်ပါ command ဖြင့် install လုပ်ရန် composer ကိုသုံးနိုင်သည်။

 composer create-project --prefer-dist yiisoft/yii2-app-basic basic

ဤ command သည်အခြေခံလမ်းညွှန်တွင်အခြေခံအားဖြင့် Yii2 application တစ်ခုကိုဖန်တီးလိမ့်မည်။

workerman ကို install လုပ်ပါ

နောက်တော့ Workerman ကို install လုပ်ဖို့လိုတယ်။ Composer ကိုလျင်မြန်စွာ install လုပ်ရန်အသုံးပြုနိုင်သည်။

 composer require workerman/workerman

တပ်ဆင်မှုပြီးဆုံးပြီးတဲ့အခါ Workerman Service ကိုစတင်ဖို့ Workery.php လို့ခေါ်တဲ့ဖိုင်ကိုဖန်တီးဖို့လိုတယ်။ ဒီမှာနမူနာကုဒ်တစ်ခုပါ။

 // worker.php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
$worker = new Worker('websocket://0.0.0.0:8080');
$worker->onMessage = function($connection, $data) {
    // လက်ခံရရှိမက်ဆေ့ခ်ျကို process
    $message = 'Received: ' . $data;
    // client ကိုမှမက်ဆေ့ခ်ျပို့ပါ
    $connection->send($message);
};
Worker::runAll();

အထက်ဖော်ပြပါကုဒ်သည် port 8080 ကိုနားထောင်ပေးသော websocket server တစ်ခုကိုဖန်တီးသည်။ မက်ဆေ့ခ်ျကိုလက်ခံရရှိသည့်အခါမက်ဆေ့ခ်ျကို client သို့ပြန်သွားလိမ့်မည်။

Yii2 Controller နှင့် View ကိုဖန်တီးပါ

နောက်တဖန် Yii2 လျှောက်လွှာတွင်ဝက်ဘ်ဆိုက်တောင်းဆိုမှုများကိုကိုင်တွယ်ရန် Controller ကိုဖန်တီးရန်လိုအပ်သည်။ ဤတွင် websocket controller အတွက်ကုဒ်ဖြစ်ပါတယ်:

 // WebSocketController.php
namespace app\controllers;
use yii\web\Controller;
class WebSocketController extends Controller
{
    public $enableCsrfValidation = false;
    public function actionIndex()
    {
        // awebsocketဆက်
        $connection = new \Workerman\Connection\TcpConnection('websocket://127.0.0.1:8080');
        $connection->onMessage = function($connection, $message) {
            // လက်ခံရရှိမက်ဆေ့ခ်ျကို process
            $message = 'Received: ' . $message;
            // client ကိုမှမက်ဆေ့ခ်ျပို့ပါ
            $connection->send($message);
        };
        // စတင်တည်ထောင်သည်websocketဆက်
        $connection->connect();
    }
}

ဤ Controller တွင်ကျွန်ုပ်တို့သည် Workerman's TCPConnection ကို webscess connection တစ်ခုကိုဖန်တီးရန်နှင့်မက်ဆေ့ခ်ျကိုလက်ခံရရှိပြီးနောက်ပြန်ပို့သောမက်ဆေ့ခ်ျကို callback function ကိုသတ်မှတ်ရန်အသုံးပြုသည်။

ထို့နောက် View ဖိုင်တွင်ခလုတ်တစ်ခု ဖန်တီး. ဆာဗာသို့စာတစ်စောင်ပို့ခြင်းနှင့်ပို့ခြင်း။

 <?php
use yii\helpers\Html;
?>
<h1>WebSocket Example</h1>
<button id="sendButton">Send Message</button>
<script>
$(document).ready(function() {
    $('#sendButton').click(function() {
        var message = "Hello, server!";
        // ဆာဗာသို့စာတစ်စောင်ပို့ပါ
        websocket.send(message);
    });
});
</script>

ဤကုဒ်တွင် JQuery ကို အသုံးပြု. ခလုတ်ကိုနှိပ်ရန်အတွက် JQuery ကိုအသုံးပြုသည်။ အသုံးပြုသူသည်ခလုတ်ကိုနှိပ်သောအခါ, Websident Server သို့စာတစ်စောင်ပို့သည်။

routing configure

Yii2 applications များသည် websocket controller ကိုမှန်ကန်စွာဝင်ရောက်နိုင်ရန်အတွက် Configuration File တွင်လမ်းကြောင်းတစ်ခုကိုတည်ဆောက်ရန်လိုအပ်သည်။ Yii2 application ၏ configuration file တွင် components ခင်းကျင်းမှုကိုရှာပြီးအောက်ပါတို့ကိုထည့်ပါ။

 'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        // ထည့်သည်websocketလမ်းကြောင်း
        '/websocket' => 'websocket/index'
    ],
],

အထက်ပါ configuration မှတစ်ဆင့် / websoetout လမ်းကြောင်းသည်ကျွန်ုပ်တို့အစောပိုင်းကဖန်တီးထားသော websocket controller ကိုညွှန်ပြလိမ့်မည်။

အကျဉ်းချုပ်

ဤဆောင်းပါး၏ရှင်းလင်းချက်ကိုမှတစ်ဆင့် Yii2 မူဘောင်တွင် Websound ဆက်သွယ်ရေးလုပ်ငန်းများကိုအကောင်အထည်ဖော်ရန်မည်သို့ပေါင်းစပ်ရမည်ကိုသင်လေ့လာသင်ယူခဲ့သည်။ ပထမ ဦး စွာသင်သည် Yii2 နှင့် Workerman မှ frameworks များကိုတေးရေးဆရာမှတဆင့်တပ်ဆင်ထားသည်။ ထိုအခါသင်သည် websocket ဆက်သွယ်မှုများကိုကိုင်တွယ်ရန်အလုပ်သမားဝန်ဆောင်မှုကိုဖန်တီးခဲ့သည်။ ထို့နောက်သင် Yii2 လျှောက်လွှာတွင် Controller နှင့် Views များကိုတည်ဆောက်ပြီးနောက်ဆုံးတွင်လမ်းကြောင်းကိုပြင်ဆင်ခြင်းဖြင့် websocket လုပ်ဆောင်မှုကိုရရှိခဲ့သည်။

ဤဥပမာဖြင့် Workerman ကိုသင်၏ Yii2 application ထဲသို့အလွယ်တကူပေါင်းစည်းနိုင်ပြီးသင်၏လျှောက်လွှာကိုအချိန်မှန်ဆက်သွယ်မှုစွမ်းရည်များကိုအလွယ်တကူထည့်သွင်းပြီးအသုံးပြုသူအတွေ့အကြုံတိုးတက်အောင်ပြုလုပ်နိုင်သည်။