一、安裝socket.iojavascript
npm install socket.io
二、建立服務端代碼server.jshtml
var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs') app.listen(8080); io.set('log level', 1);//將socket.io中的debug信息關閉 function handler (req, res) { fs.readFile(__dirname + '/index.html',function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200, {'Content-Type': 'text/html'}); res.end(data); }); } io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });
三、建立客戶端代碼 index.htmljava
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ssocket</title> <script type="text/javascript" src="http://localhost:8080/socket.io/socket.io.js"></script> </head> <body> <script type="text/javascript"> var socket = io.connect('http://localhost:8080'); socket.on('news', function (data) { alert(data.hello); socket.emit('my other event', { my: 'data' }); }); </script> </body> </html>
四、執行結果node
啓動服務端:npm
node server.js
在瀏覽器輸入 http://localhost:8080/index.html數組
瀏覽器打印出: world瀏覽器
命令行打印出:{ my: 'data' }app
五、更多資料參見官方網站 http://socket.io/#how-to-usesocket
六、服務端向指定客戶端發送消息網站
思路是客戶端與服務端創建鏈接的時候,服務端保存客戶端的信息,作一個socketMap, 在socketMap中取出須要發送消息的客戶端,向該客戶端發送消息
作一個模擬的簡單例子,這裏用的是數組:
var sockets = []; var i = 1; io.sockets.on('connection', function (socket) { sockets[i] = socket; i++; socket = sockets[1]; //這裏指定向第一個客戶發送消息 console.log(i); socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });