สวัสดีครับ วันนี้มาลองฝึกทำ Workshop ง่ายๆ กัน ด้วยการทำ Chat Application ด้วยการใช้ socket.io ในตัวอย่าง ผมจะใช้ socket.io ร่วมกับ Node.js + Express.js และตัว Client ที่เป็นหน้าบ้าน ก็จะเป็นแค่ HTML ธรรมดานะครับ
ซีรีย์ทำ Chap Application
- ทำ Chat Application ด้วย Node.js, Express และ Socket.io
- ทำ Chat Application ด้วย Express + Socket.io และ React.js
ระดับความยาก: ⭐️
หน้าตาเว็บแชตเป็นแบบนี้

สำหรับ Package Manager ในตัวอย่างใช้เป็น pnpm นะครับ สามารถใช้ npm, yarn หรือ bun แทนได้ แล้วแต่ชอบเลยครับ
Step 1 - เริ่มต้นสร้างโปรเจ็ค
สร้างโปรเจ็คแบบ module โดยการ init project ขึ้นมา
pnpm init# หรือ bun, pnpm# bun init, npm initทำการติดตั้ง express และ socket.io
pnpm install express socket.ioตัวไฟล์ package.json ควรจะเป็นแบบนี้ มี type คือ module
{ "name": "chat-app-express", "type": "module", "dependencies": { "express": "^4.18.2", "socket.io": "^4.7.2" }}สร้าง server ขึ้นมาง่ายๆ ด้วยการใช้ express รันที่ port 5555 ตั้งชื่อว่า index.js`
import path from 'path'import { fileURLToPath } from 'url'
import express from 'express'
const APP_PORT = 5555const __dirname = path.dirname(fileURLToPath(import.meta.url))
const app = express()
app.get('/', (req, res) => { res.sendFile(path.join(__dirname + '/index.html'))})
app.listen(APP_PORT, () => { console.log(`App running on port ${APP_PORT}`)})ตัว express app ไม่มีอะไรมาก แค่ให้มันทำการ serve index.html เวลาที่มีคนเข้ามาที่เว็บไซต์ / (ใช้ sendFile ธรรมดา)
และก็เพิ่มไฟล์ index.html เป็นแบบนี้
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Chat App socket.io + express</title> </head> <body> <h2>Chat App with socket.io + Express</h2> </body></html>