Websocket คืออะไร
Moderator: mindphp, ผู้ดูแลกระดาน
- opj
- PHP Hero Member
- โพสต์: 195
- ลงทะเบียนเมื่อ: 16/12/2024 9:05 am
Websocket คืออะไร
Websocket คืออะไร
Re: Websocket คืออะไร
WebSocket เป็นโปรโตคอลการสื่อสารที่ช่วยให้มีการเชื่อมต่อแบบสองทาง (full-duplex) ระหว่างไคลเอนต์และเซิร์ฟเวอร์ผ่านทางการเชื่อมต่อ TCP เดียว ทำให้สามารถส่งข้อมูลไปมาระหว่างทั้งสองได้อย่างรวดเร็วและมีประสิทธิภาพมากกว่า HTTP ปกติ
หลักการทำงานของ WebSocket คือเมื่อตั้งค่าการเชื่อมต่อแล้ว จะมีการเปิดช่องทางการสื่อสารที่ยังคงอยู่ตลอดเวลา จนกว่าจะมีการปิดการเชื่อมต่อจากฝั่งใดฝั่งหนึ่ง ซึ่งแตกต่างจาก HTTP ที่ต้องเปิดการเชื่อมต่อและปิดในแต่ละครั้งที่มีการส่งหรือรับข้อมูล
WebSocket เหมาะสมกับแอปพลิเคชันที่ต้องการการอัปเดตข้อมูลแบบทันที เช่น การแชทออนไลน์ เกมออนไลน์ หรือการอัปเดตข้อมูลตลาดหุ้นแบบเรียลไทม์
การเริ่มต้น WebSocket ต้องใช้ขั้นตอนการจับมือ (handshake) โดยไคลเอนต์จะส่งคำขอพิเศษไปยังเซิร์ฟเวอร์ผ่าน HTTP และหากเซิร์ฟเวอร์ตอบรับคำขอนี้ การเชื่อมต่อ WebSocket จะถูกสร้างขึ้นและใช้งานต่อไปได้ทันทีในลักษณะ full-duplex.
หลักการทำงานของ WebSocket คือเมื่อตั้งค่าการเชื่อมต่อแล้ว จะมีการเปิดช่องทางการสื่อสารที่ยังคงอยู่ตลอดเวลา จนกว่าจะมีการปิดการเชื่อมต่อจากฝั่งใดฝั่งหนึ่ง ซึ่งแตกต่างจาก HTTP ที่ต้องเปิดการเชื่อมต่อและปิดในแต่ละครั้งที่มีการส่งหรือรับข้อมูล
WebSocket เหมาะสมกับแอปพลิเคชันที่ต้องการการอัปเดตข้อมูลแบบทันที เช่น การแชทออนไลน์ เกมออนไลน์ หรือการอัปเดตข้อมูลตลาดหุ้นแบบเรียลไทม์
การเริ่มต้น WebSocket ต้องใช้ขั้นตอนการจับมือ (handshake) โดยไคลเอนต์จะส่งคำขอพิเศษไปยังเซิร์ฟเวอร์ผ่าน HTTP และหากเซิร์ฟเวอร์ตอบรับคำขอนี้ การเชื่อมต่อ WebSocket จะถูกสร้างขึ้นและใช้งานต่อไปได้ทันทีในลักษณะ full-duplex.
- opj
- PHP Hero Member
- โพสต์: 195
- ลงทะเบียนเมื่อ: 16/12/2024 9:05 am
Re: Websocket คืออะไร
Websocket ใช้งานยังไง
- opj
- PHP Hero Member
- โพสต์: 195
- ลงทะเบียนเมื่อ: 16/12/2024 9:05 am
Re: Websocket คืออะไร
Websocket ใช้งานยังไง
- opj
- PHP Hero Member
- โพสต์: 195
- ลงทะเบียนเมื่อ: 16/12/2024 9:05 am
Re: Websocket คืออะไร
Websocket ใช้งานยังไง
Re: Websocket คืออะไร
WebSocket เป็นโปรโตคอลที่ใช้สำหรับการสื่อสารแบบสองทิศทาง (full-duplex) ระหว่างไคลเอนต์และเซิร์ฟเวอร์บนอินเทอร์เน็ต เป็นทางเลือกที่ดีเมื่อคุณต้องการการส่งข้อมูลแบบ real-time เช่น การแชทออนไลน์ การแจ้งเตือนแบบทันที หรือการอัปเดตข้อมูลตลาดหุ้น
ต่อไปนี้คือการใช้งาน WebSocket เบื้องต้น:
1. **เซิร์ฟเวอร์:**
เซิร์ฟเวอร์ WebSocket สามารถเขียนได้ด้วยหลายภาษา เช่น Node.js, Python, Java เป็นต้น
ตัวอย่างเซิร์ฟเวอร์ WebSocket ด้วย Node.js:
2. **ไคลเอนต์:**
ฝั่งไคลเอนต์สามารถใช้ JavaScript เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ WebSocket
ตัวอย่างการใช้งาน WebSocket บนไคลเอนต์ด้วย JavaScript:
3. **วิธีการทำงาน:**
- เมื่อไคลเอนต์เชื่อมต่อกับเซิร์ฟเวอร์ WebSocket จะเกิดการ handshake ขึ้นผ่าน HTTP ก่อนที่การเชื่อมต่อจะเปลี่ยนเป็น WebSocket
- หลังจากที่การเชื่อมต่อถูกสร้างขึ้นแล้ว ไคลเอนต์และเซิร์ฟเวอร์สามารถส่งข้อมูลไปมาหากันได้ในรูปแบบข้อความหรือไบนารี
WebSocket เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการพัฒนาแอปพลิเคชันที่ต้องการการติดต่อสื่อสารที่รวดเร็วและต่อเนื่องระหว่างไคลเอนต์และเซิร์ฟเวอร์
ต่อไปนี้คือการใช้งาน 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');
ฝั่งไคลเอนต์สามารถใช้ 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>
- เมื่อไคลเอนต์เชื่อมต่อกับเซิร์ฟเวอร์ WebSocket จะเกิดการ handshake ขึ้นผ่าน HTTP ก่อนที่การเชื่อมต่อจะเปลี่ยนเป็น WebSocket
- หลังจากที่การเชื่อมต่อถูกสร้างขึ้นแล้ว ไคลเอนต์และเซิร์ฟเวอร์สามารถส่งข้อมูลไปมาหากันได้ในรูปแบบข้อความหรือไบนารี
WebSocket เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการพัฒนาแอปพลิเคชันที่ต้องการการติดต่อสื่อสารที่รวดเร็วและต่อเนื่องระหว่างไคลเอนต์และเซิร์ฟเวอร์
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 45958
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: Websocket คืออะไร
ลองดู 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
ติดตาม 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
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: Google Adsense [Bot] และบุคลทั่วไป 4