Websocket คืออะไร

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
opj
PHP Hero Member
PHP Hero Member
โพสต์: 195
ลงทะเบียนเมื่อ: 16/12/2024 9:05 am

Websocket คืออะไร

โพสต์ที่ยังไม่ได้อ่าน โดย opj »

Websocket คืออะไร
MindPHP Assistant

Re: Websocket คืออะไร

โพสต์ที่ยังไม่ได้อ่าน โดย MindPHP Assistant »

WebSocket เป็นโปรโตคอลการสื่อสารที่ช่วยให้มีการเชื่อมต่อแบบสองทาง (full-duplex) ระหว่างไคลเอนต์และเซิร์ฟเวอร์ผ่านทางการเชื่อมต่อ TCP เดียว ทำให้สามารถส่งข้อมูลไปมาระหว่างทั้งสองได้อย่างรวดเร็วและมีประสิทธิภาพมากกว่า HTTP ปกติ

หลักการทำงานของ WebSocket คือเมื่อตั้งค่าการเชื่อมต่อแล้ว จะมีการเปิดช่องทางการสื่อสารที่ยังคงอยู่ตลอดเวลา จนกว่าจะมีการปิดการเชื่อมต่อจากฝั่งใดฝั่งหนึ่ง ซึ่งแตกต่างจาก HTTP ที่ต้องเปิดการเชื่อมต่อและปิดในแต่ละครั้งที่มีการส่งหรือรับข้อมูล

WebSocket เหมาะสมกับแอปพลิเคชันที่ต้องการการอัปเดตข้อมูลแบบทันที เช่น การแชทออนไลน์ เกมออนไลน์ หรือการอัปเดตข้อมูลตลาดหุ้นแบบเรียลไทม์

การเริ่มต้น WebSocket ต้องใช้ขั้นตอนการจับมือ (handshake) โดยไคลเอนต์จะส่งคำขอพิเศษไปยังเซิร์ฟเวอร์ผ่าน HTTP และหากเซิร์ฟเวอร์ตอบรับคำขอนี้ การเชื่อมต่อ WebSocket จะถูกสร้างขึ้นและใช้งานต่อไปได้ทันทีในลักษณะ full-duplex.
ภาพประจำตัวสมาชิก
opj
PHP Hero Member
PHP Hero Member
โพสต์: 195
ลงทะเบียนเมื่อ: 16/12/2024 9:05 am

Re: Websocket คืออะไร

โพสต์ที่ยังไม่ได้อ่าน โดย opj »

Websocket ใช้งานยังไง
ภาพประจำตัวสมาชิก
opj
PHP Hero Member
PHP Hero Member
โพสต์: 195
ลงทะเบียนเมื่อ: 16/12/2024 9:05 am

Re: Websocket คืออะไร

โพสต์ที่ยังไม่ได้อ่าน โดย opj »

Websocket ใช้งานยังไง
ภาพประจำตัวสมาชิก
opj
PHP Hero Member
PHP Hero Member
โพสต์: 195
ลงทะเบียนเมื่อ: 16/12/2024 9:05 am

Re: Websocket คืออะไร

โพสต์ที่ยังไม่ได้อ่าน โดย opj »

Websocket ใช้งานยังไง
MindPHP Assistant

Re: Websocket คืออะไร

โพสต์ที่ยังไม่ได้อ่าน โดย MindPHP Assistant »

WebSocket เป็นโปรโตคอลที่ใช้สำหรับการสื่อสารแบบสองทิศทาง (full-duplex) ระหว่างไคลเอนต์และเซิร์ฟเวอร์บนอินเทอร์เน็ต เป็นทางเลือกที่ดีเมื่อคุณต้องการการส่งข้อมูลแบบ real-time เช่น การแชทออนไลน์ การแจ้งเตือนแบบทันที หรือการอัปเดตข้อมูลตลาดหุ้น

ต่อไปนี้คือการใช้งาน WebSocket เบื้องต้น:

1. **เซิร์ฟเวอร์:**
เซิร์ฟเวอร์ WebSocket สามารถเขียนได้ด้วยหลายภาษา เช่น Node.js, Python, Java เป็นต้น

ตัวอย่างเซิร์ฟเวอร์ WebSocket ด้วย Node.js:

โค้ด: เลือกทั้งหมด

javascript
   const WebSocket = require('ws');

   const server = new WebSocket.Server({ port: 8080 });

   server.on('connection', (ws) => {
       console.log('Client connected');
       ws.on('message', (message) => {
           console.log('Received message:', message);
           ws.send('Echo: ' + message);
       });

       ws.on('close', () => {
           console.log('Client disconnected');
       });
   });

   console.log('WebSocket server is running on ws://localhost:8080');
   
2. **ไคลเอนต์:**
ฝั่งไคลเอนต์สามารถใช้ JavaScript เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ WebSocket

ตัวอย่างการใช้งาน WebSocket บนไคลเอนต์ด้วย JavaScript:

โค้ด: เลือกทั้งหมด

html
   <!DOCTYPE html>
   <html>
   <body>
       <script>
           const socket = new WebSocket('ws://localhost:8080');

           socket.onopen = () => {
               console.log('Connected to server');
               socket.send('Hello Server!');
           };

           socket.onmessage = (event) => {
               console.log('Message from server: ', event.data);
           };

           socket.onclose = () => {
               console.log('Disconnected from server');
           };

           socket.onerror = (error) => {
               console.error('WebSocket error: ', error);
           };
       </script>
   </body>
   </html>
   
3. **วิธีการทำงาน:**
- เมื่อไคลเอนต์เชื่อมต่อกับเซิร์ฟเวอร์ WebSocket จะเกิดการ handshake ขึ้นผ่าน HTTP ก่อนที่การเชื่อมต่อจะเปลี่ยนเป็น WebSocket
- หลังจากที่การเชื่อมต่อถูกสร้างขึ้นแล้ว ไคลเอนต์และเซิร์ฟเวอร์สามารถส่งข้อมูลไปมาหากันได้ในรูปแบบข้อความหรือไบนารี

WebSocket เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการพัฒนาแอปพลิเคชันที่ต้องการการติดต่อสื่อสารที่รวดเร็วและต่อเนื่องระหว่างไคลเอนต์และเซิร์ฟเวอร์
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 45910
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Websocket คืออะไร

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลองดู VDO นี้ประกอบ
https://youtu.be/bhltDDxqXRU
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 4