Web Socket
Web Socket
ในยุคของเทคโนโลยีที่เติบโตอย่างรวดเร็ว การสื่อสารแบบเรียลไทม์เป็นสิ่งสำคัญที่ช่วยเพิ่มประสิทธิภาพในการทำงานและการเชื่อมต่อระหว่างอุปกรณ์และแอปพลิเคชันต่างๆ Web Socket เป็นโปรโตคอลที่ออกแบบมาเพื่อการสื่อสารแบบเรียลไทม์โดยเฉพาะ ซึ่งมีความสามารถในการเชื่อมต่อที่รวดเร็วและมีประสิทธิภาพมากกว่าโปรโตคอล HTTP ทั่วไปโดยเป็นการสื่อสารในลักษณะการสื่อสารแบบสองทิศทาง (full-duplex) ซึ่งช่วยให้การส่งข้อมูลระหว่าง Client และ Server เป็นไปอย่างรวดเร็วโดยไม่ต้องมีการเปิดปิดการเชื่อมต่อซ้ำๆ
ตัวอย่างการใช้งาน Web Socket
1. การสนทนาแบบเรียลไทม์ (Real-time Chat Applications) Web Socket ช่วยให้การส่งข้อความระหว่างผู้ใช้ในแอปพลิเคชันสนทนาเป็นไปอย่างรวดเร็วและทันที ตัวอย่างเช่น แอปพลิเคชัน Chat เช่น Slack หรือ Facebook Messenger ใช้ WebSocket เพื่อให้การสนทนาเป็นไปอย่างราบรื่น
2. การติดตามข้อมูลแบบเรียลไทม์ (Real-time Data Feeds) การติดตามข้อมูลตลาดหุ้น ข่าว หรือการแจ้งเตือนต่างๆ ที่ต้องการข้อมูลที่อัปเดตแบบเรียลไทม์ ตัวอย่างเช่น การติดตามราคาหุ้นหรือการแจ้งเตือนข่าวสารในระบบการเงิน
3. การควบคุมเกมแบบเรียลไทม์ (Real-time Gaming) Web Socket ช่วยให้การส่งข้อมูลระหว่างเซิร์ฟเวอร์เกมและผู้เล่นเป็นไปอย่างรวดเร็ว เช่น การควบคุมตัวละคร การอัปเดตสถานะของเกม ตัวอย่างเช่น เกมออนไลน์ที่มีการโต้ตอบแบบเรียลไทม์ เช่น เกมแนว MOBA หรือ MMORPG
4. การควบคุมอุปกรณ์ IoT (IoT Device Control) การควบคุมและรับข้อมูลจากอุปกรณ์ IoT ที่ต้องการการสื่อสารแบบเรียลไทม์ เช่น การควบคุมบ้านอัจฉริยะ การตรวจสอบเซ็นเซอร์ ตัวอย่างเช่น ระบบบ้านอัจฉริยะที่ควบคุมผ่านแอปพลิเคชันมือถือ
5. การแสดงผลข้อมูลแบบเรียลไทม์ (Real-time Dashboards) การแสดงผลข้อมูลที่ต้องการการอัปเดตแบบเรียลไทม์ ตัวอย่างเช่น แดชบอร์ดการแสดงผลข้อมูลการผลิตหรือการวิเคราะห์ข้อมูล แดชบอร์ดที่แสดงผลข้อมูลการผลิตในโรงงาน แดชบอร์ดแจ้งเตือนเหตุฉุกเฉิน
รูปแบบการทำงาน
การเริ่มต้นเชื่อมต่อ การเชื่อมต่อ WebSocket จะเริ่มต้นด้วยการส่งคำร้องขอ HTTP แบบพิเศษ (HTTP handshake) จากไคลเอนต์ไปยังเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ตอบสนองด้วยการยืนยันการเชื่อมต่อ (HTTP 101 Switching Protocols) การเชื่อมต่อ WebSocket จะถูกสร้างขึ้น
การสื่อสารแบบสองทิศทาง หลังจากการเชื่อมต่อถูกสร้างขึ้นแล้ว ไคลเอนต์และเซิร์ฟเวอร์สามารถส่งข้อมูลถึงกันได้ทันที โดยไม่ต้องเปิดหรือปิดการเชื่อมต่อซ้ำๆ การสื่อสารจะเป็นแบบ full-duplex คือสามารถส่งและรับข้อมูลได้พร้อมๆ กัน
การจัดการกับข้อความ ข้อมูลที่ส่งผ่าน WebSocket จะถูกจัดการในรูปแบบของข้อความ (message) ซึ่งสามารถเป็นได้ทั้งข้อความ (text) และข้อมูลไบนารี (binary)
การปิดการเชื่อมต่อ การเชื่อมต่อ WebSocket สามารถถูกปิดได้ทั้งจากไคลเอนต์และเซิร์ฟเวอร์ โดยจะมีการส่งข้อความ close frame เพื่อยืนยันการปิดการเชื่อมต่อ
สร้างและใช้งาน Web Socket
1, สร้าง folder ชื่อว่า web-socket-demo 2. ทำการสร้าง nodejs project ผ่าน termial โดยใช้คำสั่ง ใน Folder
npm init -y
3. จะได้ไฟล์ชื่อว่า Package.json ใน folder 4. ทำการติดตั้ง Package ที่มีชื่อว่า ws สำหรับใช้งาน Web Socket
npm install ws --save
5. สร้างไฟล์ server.js ใน folder และเพิ่ม Code ด้างล่าง
สร้างไฟล์ client.js ใน folder และเพิ่ม Code ด้านล่าง
7. ทำการ Run Code server.js และ client.js แยกกัน (แยก Terminal)
node server.js
node client.js
จาก Code server.js จะเป็น web socket server และ Code client.js จะทำหน้าที่เป็น web scoket client ที่จะทำการสุ่มตัวเลข 0-100 และจะส่งไปยัง server ทุกๆ 5 วินาที
Last updated