ရိုးရှင်းသော Chat Application - Server
Node.js + Socket.IO
Section titled “Node.js + Socket.IO”- အခု Server ဘက်အတွက် လူကြိုက်များတဲ့ Node.js မှာ Socket.IO Library ကို သုံးပြီး ဘယ်လို တည်ဆောက်မလဲ ကြည့်ရအောင်။
ပုံ စိတ်ကူး (အသစ်) ၃: Socket.IO က WebSocket, Long Polling စတဲ့ မတူညီတဲ့ Transport တွေကို အပေါ်ကနေ ဖုံးအုပ်ထားပြီး Client နဲ့ Server အတွက် တူညီတဲ့ API တစ်ခု ပေးထားပုံ Diagram (Abstraction Layer ကို ပြသရန်)။ Node.js Project စတင်ခြင်းနှင့် Socket.IO ထည့်သွင်းခြင်း
-
Socket.IO Server တည်ဆောက်ဖို့အတွက် Node.js ကို သင့်ကွန်ပျူတာမှာ install လုပ်ထားဖို့ လိုပါတယ်။
-
သင့် Project အတွက် Folder တစ်ခု ဖန်တီးပါ။ (ဥပမာ - node_chat_app) -Terminal သို့မဟုတ် Command Prompt ကို အသုံးပြုပြီး အဲဒီ Folder ထဲ ဝင်ပါ။
-
အောက်ပါ Command ကို ရိုက်ပြီး Node.js Project ကို စတင်ပါ။ (Default Setting တွေအတွက် Enter နှိပ်သွားနိုင်ပါတယ်)
Installing Dependencies
Section titled “Installing Dependencies”npm init -y
Socket.IO Library ကို install လုပ်ပါ။
npm install socket.io
Server Code (index.js):
Section titled “Server Code (index.js):”သင့် Project Folder ထဲမှာ index.js လို့ File တစ်ခု ဖန်တီးပြီး အောက်ပါ Code များကို ထည့်သွင်းပါ။
// လိုအပ်သော Module များ ထည့်သွင်းခြင်းconst http = require("http"); // Socket.IO က HTTP Server လိုအပ်သည်const socketIo = require("socket.io");
// HTTP Server ကို ဖန်တီးခြင်း (Express မပါတော့ပါ)const server = http.createServer();
// Socket.IO ကို HTTP Server နှင့် ချိတ်ဆက်ခြင်းconst io = socketIo(server, { // Socket.IO Client Library ကို တခြား Origin မှ လာသော Request များအတွက် ခွင့်ပြုရန် // Client File ကို Local ဒါမှမဟုတ် တခြား Domain ကနေ ဖွင့်ရင် လိုအပ်နိုင်သည် cors: { origin: "*", // မည်သည့် Origin မှ လာသည်ဖြစ်စေ ခွင့်ပြုရန် (Development အတွက်) methods: ["GET", "POST"], },});
// Socket.IO Connection အသစ်တစ်ခု ရရှိသောအခါ လုပ်ဆောင်ရန်io.on("connection", (socket) => { console.log("အသုံးပြုသူအသစ် ချိတ်ဆက်လာပါပြီ!");
// Client မှ 'chat message' event ပို့လာသောအခါ socket.on("chat message", (msg) => { console.log("မက်ဆေ့ချ် လက်ခံရရှိ:", msg); // ရရှိသော မက်ဆေ့ချ်ကို ချိတ်ဆက်ထားသော Client အားလုံးထံ ပြန်လည်ပို့ခြင်း (Broadcast) io.emit("chat message", msg); // 'chat message' event အမည်ဖြင့် data (msg) ကို ပို့သည် });
// Client ချိတ်ဆက်မှု ပြတ်တောက်သွားသောအခါ socket.on("disconnect", () => { console.log("အသုံးပြုသူ ချိတ်ဆက်မှု ပြတ်တောက်သွားပါပြီ။"); });});
// Server ကို သတ်မှတ်ထားသော Port တွင် စတင်နားထောင်ခြင်းconst PORT = process.env.PORT || 3000;server.listen(PORT, () => { console.log( `Socket.IO Chat Server ကို http://localhost:${PORT} တွင် နားထောင်နေပါပြီ။` );});
Code ရှင်းလင်းချက် (Server):
Section titled “Code ရှင်းလင်းချက် (Server):”- const http = require(‘http’); const server = http.createServer(); - ရိုးရှင်းတဲ့ Node.js HTTP Server တစ်ခု တည်ဆောက်ပါတယ်။ Socket.IO ဟာ HTTP Server တစ်ခု လိုအပ်ပါတယ်။
- cors: { origin: ”*”, … } - Client File ကို Server Domain နဲ့ Port က မတူတဲ့နေရာ (ဥပမာ - Local File file:///… ဒါမှမဟုတ် တခြား Domain) ကနေ ဖွင့်တဲ့အခါ CORS (Cross-Origin Resource Sharing) ပြဿနာ မရှိအောင် ခွင့်ပြုဖို့ သတ်မှတ်တာပါ။ Development မှာ ”*” လို့ ပေးထားနိုင်ပေမယ့် Production မှာတော့ သင့် Client File တွေ ရှိတဲ့ Origin Address ကိုပဲ သတ်မှတ်သင့်ပါတယ်။
ဒီ Setup ကို Run ဖို့:
Section titled “ဒီ Setup ကို Run ဖို့:”- Node.js နဲ့ Socket.IO ကို အရင်ဆုံး Install လုပ်ပါ။
- အရင်အခန်းက Client Code ကို chat_client.html အဖြစ် သင်ကြိုက်တဲ့ Folder ထဲမှာ Save လုပ်ပါ။
- Terminal/Command Prompt ကနေ node index.js လို့ ရိုက်ပြီး Server ကို စတင်ပါ။
- Browser တစ်ခုခုကို ဖွင့်ပြီး Save ထားတဲ့ chat_client_socketio.html File ကို File > Open (သို့မဟုတ် File Path ကို Browser မှာ တိုက်ရိုက် ရိုက်ထည့်ခြင်း or Live Server) ဖြင့် ဖွင့်ပါ။
- Browser Tabs အများအပြား ဒါမှမဟုတ် တခြား ကွန်ပျူတာတွေကနေလည်း ဒီ File ကို ဖွင့်ပြီး Local Run နေတဲ့ Server နဲ့ ချိတ်ဆက်ပြီး Chat လို့ ရပါတယ်။