Socket.IO Socket ที่ใช้ได้ทุก browser by heha
Oct5
Socket.IO คือ library ตัวหนึ่งซึ่งถูกเขียนขึ้นโดยภาษา NodeJS (Javascript ฝั่ง Server Side) ซึ่งเป็นภาษาใหม่มาแรงในขณะนี้เพราะการทำงานแบบ Asynchronous สามารถทำงานหลายๆ อย่างพร้อมกันแบบ Parallel ได้ (เรียกว่าการเขียนโปรแกรมแบบ Event-driven) เว็บไซต์ที่ใช้งาน Socket.IO เช่น yammer.com, trello.com, c9.io (Cloud9) รวมไปถึงสามารถนำไปใช้ทำเกมประเภท MMORPG ได้ด้วยเช่นกัน
ทำไมต้องใช้ Socket.IO?
- Support IE 5.5+, Safari 3+ ,Chrome 4+ , Firefox 3+, Opera 10+
- Cross domain support
- ใช้ Websocket เป็น protocol หลัก มีความเร็วในการเชื่อมต่อที่สูงมาก
- ใช้ง่าย
สาเหตุที่ Socket.IO สามารถใช้งานได้ครอบคลุมทุก browser เป็นเพราะจริงๆ เบื้องหลังของ Socket.IO ใช้รูปแบบการเชื่อมต่อได้หลายรูปแบบ ได้แก่
- WebSocket
- Adobe® Flash® Socket
- AJAX long polling
- AJAX multipart streaming
- Forever Iframe
- JSONP Polling
หากใช้ตัวแรกไม่ได้ browser ไม่ support ตัว library จะเลื่อนไปใช้ตัวถัดไปโดยอัตโนมัติ และจากในรายการจะเห็นว่ามี AJAX ด้วยซึ่งอย่างที่เราทราบกันวว่าใช้ได้ใน browser แทบทุกตัว จึงเป็นเหตุผลว่าทำไม Socket.IO จึงสามารถใช้งานได้ทุก browser
การ Setup
- ต้องใช้ NodeJS version ตั้งแต่ 0.4 เป็นต้นไป (ปัจจุบัน 0.8)
- npm install socket.io
ตัวอย่าง code server
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
ตัวอย่าง code client