WeChat Mini အစီအစဉ်များကိုကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုခြင်းဖြင့် developer များသည်သူတို့၏ကိုယ်ပိုင်ပရိုဂရမ်များ၌လက်ငင်းစာတိုပေးပို့ရေးလုပ်ငန်းများကိုအကောင်အထည်ဖော်ရန်မျှော်လင့်ကြသည်။ အရေးကြီးသောလူမှုရေးစွမ်းရည်တစ်ခုအနေဖြင့်အချိန်မှန်ချက်တင်သည်အသုံးပြုသူအပြန်အလှန်အတွေ့အကြုံကိုတိုးတက်စေရုံသာမက application များကိုစေးကပ်စေနိုင်သည်။ ဤဆောင်းပါးသည် WeChat applet ၏အချိန်မှန် chat function ကိုအကောင်အထည်ဖော်ရန် PHP နှင့် WebSound protocols များကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
အချိန်နှင့်တပြေးညီစကားပြောရလျှင်အရေးအကြီးဆုံးအရာမှာ client နှင့် server ကိုအချိန်နှင့်တပြေးညီဆက်သွယ်ခြင်းကိုဆက်လက်ထိန်းသိမ်းရန်ဖြစ်သည်။ ရိုးရာ HTTP တောင်းဆိုမှုများသည်တစ်ကြိမ်တည်းဖြစ်သည်။ WebSocket protocol သည် TCP ဆက်သွယ်မှုတစ်ခုတည်းဖြင့် Full-duplex ဆက်သွယ်မှုကိုအထောက်အပံ့ပေးနေသည်။ ဆိုလိုသည်မှာ 0 န်ဆောင်မှုခံယူသူနှင့်ဆာဗာနှစ်ခုလုံးကိုတက်ကြွစွာပေးပို့နိုင်သည်။
PHP တွင် websocket server ကိုအလွယ်တကူအကောင်အထည်ဖော်ရန် Ratchet စာကြည့်တိုက်ကိုသုံးနိုင်သည်။ Ratchet မှတဆင့်ကျွန်ုပ်တို့သည်ဆက်သွယ်မှုများ, လုပ်ငန်းစဉ်မက်ဆေ့ခ်ျများ, ထုတ်လွှင့်သည့်အချက်အလက်များကိုစီမံခန့်ခွဲနိုင်သည်။
ပထမ ဦး စွာ PHP ကို run နိုင်သောဆာဗာပတ် 0 န်းကျင်ကိုသင်ပြင်ဆင်ရန်လိုအပ်ပြီး Apache သို့မဟုတ် Nginx ကိုသုံးနိုင်သည်။ တေးရေးဆရာကို install လုပ်ပြီးနောက် Ratchet စာကြည့်တိုက်ကိုအောက်ပါ command ဖြင့်တပ်ဆင်ပါ။
<span class="fun">Composer သည် CBoden / Ratchet လိုအပ်သည်</span>
Websocket Service ကိုစတင်ရန်စီမံကိန်းတွင် chat_server.php အမည်ရှိဖိုင်တစ်ခုကိုဖန်တီးပါ။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
require 'vendor/autoload.php';
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
class ChatServer implements MessageComponentInterface {
protected $clients;
public function __construct() {
$this->clients = new \SplObjectStorage;
}
public function onOpen(ConnectionInterface $conn) {
$this->clients->attach($conn);
}
public function onMessage(ConnectionInterface $from, $msg) {
$data = json_decode($msg, true);
foreach ($this->clients as $client) {
$client->send(json_encode($data));
}
}
public function onClose(ConnectionInterface $conn) {
$this->clients->detach($conn);
}
public function onError(ConnectionInterface $conn, \Exception $e) {
$conn->close();
}
}
$server = \Ratchet\Server\IoServer::factory(
new \Ratchet\Http\HttpServer(
new \Ratchet\WebSocket\WsServer(
new ChatServer()
)
),
8080
);
$server->run();
ဤဖိုင်ကိုလည်ပတ်ပြီးနောက် WeChat Apperet မှဆက်သွယ်မှုများကိုစောင့်ဆိုင်းနေသည့် websoTy server သည် port 8080 ကိုနားထောင်ပြီး websocket server တစ်ခုနားထောင်လိမ့်မည်။
WeChat Apperet တွင် word.connectionenconnectsocket method ကို သုံး. 0 က်ဘ်ဆိုက်ပိတ်ဆို့ခြင်းနှင့်ယုတ္တိဗေဒပေးပို့ခြင်းနှင့်လက်ခံခြင်းကိုအကောင်အထည်ဖော်နိုင်သည်။
const socket = wx.connectSocket({
url: 'ws://localhost:8080',
success: function() {
console.log('WebSocketဆက်သွယ်မှုအောင်မြင်သော');
}
});
socket.onOpen(function() {
console.log('WebSocketဆက်သွယ်မှုဖွင့်ထားသည်');
socket.send({
message: 'Hello, WebSocket!'
});
});
socket.onMessage(function(res) {
console.log('မက်ဆေ့ခ်ျကိုလက်ခံရရှိခဲ့သည်:', res.data);
});
socket.onClose(function() {
console.log('WebSocketဆက်သွယ်မှုပိတ်လိုက်တယ်');
});
အထက်ပါကုဒ်များမှတစ်ဆင့် Appleet သည် PHP server နှင့်အသုံးပြုသူ Multi-user online chat ကိုကြည့်ရှုရန်အချိန်မှန်နှင့်အတူအပြန်အလှန်ဆက်သွယ်နိုင်သည်။
ဆာဗာ၏ onmessage နည်းလမ်းတွင်သုံးစွဲသူမှပေးပို့သည့်မက်ဆေ့ခ်ျကိုဒေတာဘေ့စ်သို့ချွေတာခြင်း,
ဤဆောင်းပါးသည် PHP နှင့် websocket protocol ကို အသုံးပြု. WeChat applet ၏အချိန်မှန် chat function ကိုတည်ဆောက်ခြင်းလုပ်ငန်းစဉ်ကိုမိတ်ဆက်ပေးသည်။ ပတ် 0 န်းကျင်ဆောက်လုပ်ရေး, ဆာဗာဘေးထွက် ratchet အကောင်အထည်ဖော်မှုမှ Side-Side Ratchet အကောင်အထည်ဖော်မှုသည်ရှေ့တန်းဝက်ဘ်ဆိုက်ချိတ်ဆက်မှုပုံစံများ, ကျိုးကြောင်းဆီလျော်သောစီးပွားရေးတိုးချဲ့ခြင်းဖြင့်သီးသန့်ချက်တင်ခြင်း, မက်ဆေ့ခ်ျမှတ်တမ်းတင်ခြင်း, အွန်လိုင်းအခြေအနေများစသည်တို့စသည်တို့ကိုနားလည်သဘောပေါက်နိုင်သည်။