လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP websocket Group Chat Development မဟာဗျူဟာ - ထိရောက်သောအချိန်နှင့်ဆက်သွယ်ရေးအတွက်အကောင်းဆုံးအလေ့အကျင့်များ

PHP websocket Group Chat Development မဟာဗျူဟာ - ထိရောက်သောအချိန်နှင့်ဆက်သွယ်ရေးအတွက်အကောင်းဆုံးအလေ့အကျင့်များ

M66 2025-06-22

PHP websocket ဖွံ့ဖြိုးတိုးတက်မှုနည်းပညာ - အုပ်စုလိုက် chat functions များကိုအကောင်အထည်ဖော်ရန်အတွက်အကောင်းဆုံးအလေ့အကျင့်များ

0 န်ဆောင်မှုခံယူသူနှင့်ဆာဗာအကြားဆက်နွယ်မှုရှိသောဆက်သွယ်မှုကိုပြသသည့်ဆက်သွယ်ရေးပရိုတိုကောတစ်ခုဖြစ်ပြီး၎င်းသည်ရိုးရာ HTTP ဆက်သွယ်ရေးထက်ပိုမိုပြောင်းလွယ်ပြင်လွယ်။ ထိရောက်မှုရှိသည်။ Group Chat လုပ်ဆောင်နိုင်စွမ်းကိုအကောင်အထည်ဖော်သည့်အခါ WebSound သည်အကောင်းဆုံးဖြစ်သည်။ PHP သည်တိုက်ရိုက်စကားပြောသောလုပ်ဆောင်မှုများကိုအလွယ်တကူအကောင်အထည်ဖော်ရန် WebSound နည်းပညာကိုပေါင်းစပ်ထားသည်။ ဤဆောင်းပါးသည် Group chat function ကိုအကောင်အထည်ဖော်ရန် PHP websces Technology ကို အသုံးပြု. အကောင်းဆုံးအလေ့အကျင့်များကိုမိတ်ဆက်ပေးလိမ့်မည်။

Socket soccent တစ်ခုတည်ဆောက်ပါ

ပထမ ဦး စွာ websocket connection များကိုစီမံရန် Socket Server လိုအပ်သည်။ PHP တွင်, WebSound ဆာဗာများဆောက်လုပ်ခြင်းကိုလွယ်ကူချောမွေ့စေနိုင်သော open source library ratchet ကိုအသုံးပြုရန်အကြံပြုသည်။ Ratchet ကိုတေးရေးဆရာမှတဆင့် Install လုပ်ပါ။

တေးရေးဆရာ Cboden / Ratchet လိုအပ်သည်

ထို့နောက် screenserverver.php ကဲ့သို့ server script တစ်ခုဖန်တီးပါ။

 use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
<p>require 'vendor/autoload.php';</p>
<p>$server = IoServer::factory(<br>
new HttpServer(<br>
new WsServer(<br>
new Chat()<br>
)<br>
),<br>
8080<br>
);</p>
<p>$server->run();<br>

အထက်ဖော်ပြပါကုဒ်သည် port 8080 သို့နားထောင်သည့် socket soccer server ကိုဖန်တီးပေးသည်။ သတ်သတ်မှတ်မှတ် chat function ကို chat class တွင်သတ်မှတ်လိမ့်မည်။

ဝက်ဘ်ဆိုက်များအမျိုးအစားများကိုလုပ်ဆောင်ပါ

Websocket တွင်ဖြစ်ရပ်အမျိုးမျိုးကိုကိုင်တွယ်ရန် Chat Class ကိုဖန်တီးပါ။

 use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
<p>class Chat implements MessageComponentInterface<br>
{<br>
protected $clients;</p>
{
    $this->clients = new \SplObjectStorage();
}

public function onOpen(ConnectionInterface $conn)
{
    $this->clients->attach($conn);
    echo "New connection! ({$conn->resourceId})\n";
}

public function onClose(ConnectionInterface $conn)
{
    $this->clients->detach($conn);
    echo "Connection {$conn->resourceId} has disconnected\n";
}

public function onError(ConnectionInterface $conn, \Exception $e)
{
    echo "An error has occurred: {$e->getMessage()}\n";
    $conn->close();
}

public function onMessage(ConnectionInterface $from, $msg)
{
    echo "Message from {$from->resourceId}: $msg\n";

    foreach ($this->clients as $client) {
        if ($client !== $from) {
            $client->send($msg);
        }
    }
}

}

connection အသစ်တစ်ခုကိုတည်ထောင်ပြီးဆက်သွယ်မှုကိုသိုလှောင်ထားသည့်အခါ Onopen () နည်းလမ်းကိုခေါ်သည်။ Connection ကိုပိတ်ထားသည့်အခါ Onclose () ကိုဆက်သွယ်မှုကိုပိတ်ထားသည့်အခါဟုခေါ်သည်။ OnError () အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါခြွင်းချက်ကိုင်တွယ်။ onmessage () သည်လက်ခံရရှိထားသောမက်ဆေ့ခ်ျများကိုပြုလုပ်ပြီးအခြားဖောက်သည်များအားလုံးကိုထုတ်လွှင့်သည်။

Socket Server ကိုစတင်ပါ

webscketerver.php ရှိသည့် directory ကိုရိုက်ထည့်ပါ။ command line မှတဆင့်တည်ရှိပြီး server ကိုစတင်ရန် command ကို execute လုပ်ပါ။

php websketserver.php

ဆာဗာစတင်ပြီးနောက်အုပ်စုလိုက် chat message များပေးပို့ခြင်းကိုနားလည်သဘောပေါက်ရန် WebSid connection များကိုနားထောင်ရန်နှင့်လုပ်ဆောင်ရန်စတင်သည်။

JavaScript ကိုအသုံးပြုပြီး websocket connection တစ်ခုဖန်တီးပါ

ရှေ့ဆုံးအဆုံးသည် JavaScript API မှတစ်ဆင့် Websound connection တစ်ခုဖြစ်ပြီးမက်ဆေ့ခ်ျများပို့သည်။

 var socket = new WebSocket('ws://localhost:8080');
<p>socket.onopen = function() {<br>
console.log('WebSocket Connection Established');<br>
};</p>
<p>socket.onmessage = function(event) {<br>
console.log('Received Message: ' + event.data);<br>
};</p>
<p>function sendMessage() {<br>
var message = document.getElementById('message').value;<br>
socket.send(message);<br>
}<br>

အထက်ပါကုဒ်သည်ဆာဗာနှင့်ချိတ်ဆက်ရန်ဝက်ဘ်ဆိုက်တစ်ခုဖန်တီးပေးသည်။ connection အောင်မြင်သောအခါ Onopen ဖြစ်ရပ်ကိုပစ်ခတ်ပြီး onmessage event သည်သတင်းစကားကိုလက်ခံရရှိသည်။ Sendmessage () function ကိုခေါ်ဆိုခြင်းအားဖြင့်ရှေ့ဆုံးအဆုံးသည် conal-time chat ကိုနားလည်သဘောပေါက်ရန်ဆာဗာသို့ထည့်သွင်းမှုအကွက်ထဲတွင်စာများကိုပို့သည်။

အကျဉ်းချုပ်

PHP သည် Real-Time Group Chat အတွက်အကျိုးရှိစွာပြောင်းလွယ်ပြင်လွယ်ဖြေရှင်းရန်အတွက် WebSound နည်းပညာကိုပေါင်းစပ်ထားသည်။ Front-end JavaScript နှင့်အပြန်အလှန်ဆက်သွယ်သော socket server တစ်ခုတည်ဆောက်ခြင်းအားဖြင့် text-time computon ဆက်သွယ်ရေးလုပ်ငန်းများကိုအောင်မြင်စွာပြုလုပ်နိုင်သည်။ ဤဆောင်းပါးတွင်ဥပမာများနှင့်အကောင်းဆုံးသောအလေ့အကျင့်များသည် developer များကိုလျင်မြန်စွာစတင်နိုင်ရန်ကူညီနိုင်သည်။