標籤:
websocket原本是html5下實現長連結的一個特性,當前已被眾多瀏覽器支援。
在websocket協議中,首先通過http交換一次握手,明確將協議升級至websocket。同時建立一個TCP通道,以frame幀的方式交換資料。
在node環境下準系統實現如下:
首先npm install socket.io
1、app.js,初始化socket.io
var srv = http.createServer(app).listen(app.get(‘port‘), function(){ console.log(‘Express server listening on port ‘ + app.get(‘port‘));});var io = require(‘socket.io‘).listen(srv);server.initServer(io);
2、server.js實現伺服器端代碼
exports.initServer = function(io){ io.on(‘connection‘,function(socket){ console.log(‘connection‘); socket.on(‘disconnect‘,function(msg){ console.log(‘disconnect‘); }); socket.on(‘msg1‘,function(msg){ console.log(msg); socket.emit(‘back‘,{key:‘fredric&sinny‘}); }); }); }
3、用戶端代碼
<!DOCTYPE html><html><head><script src = "socket.io.js"></script><script> var socket = io.connect(‘http://localhost:3000‘); function sendmsg(){ console.log(‘start sendmsg‘); socket.emit(‘msg1‘,{key:‘fredric‘}); } socket.on(‘back‘,function(msg){ alert(msg.key); }); </script></head><body><button type="button" onclick=‘sendmsg()‘>Click Me!</button></body></html>
瀏覽器端調試網路介面如下:
node(websocket)