WebSocket技術

webSocket技術

在html5技術革新中,加入了WebSocket技術
1.webSocket實際是TCP鏈接
webSocket在最初將發送http鏈接請求到服務器端,
可是在header中加入了附加信息,
這些附加信息會在服務器端接收到並解析,
使得服務器端知道須要把這一個http鏈接升級到WebSocket的鏈接,
服務器隨後將響應返回給客戶端,     這樣WebSocket鏈接就創建了。
2.在發送數據的時候,數據包的開頭以0x00開始,以0xFF結束,
用以區分每次發送數據包
3.其餘:webSocket客戶端由js編寫,服務端可使用各類語言,須要遵循webSocket的規範,實現可以支持webSocket的應用服務器端

在webSocket以前的輪詢技術

1.這種模式在接觸webSocket的期間,本身就想到了,若是使用ajax異步請求,可讓服務器不響應ajax,當須要給客戶端發信息的時候再響應,這樣客戶端接收信息後,再請求,這期間服務器若是有信息要發給客戶端的話,先緩存,等客戶端在發請求的時候,再一塊兒響應。這樣循環詢問,當有信息就響應,無信息就等待。
2.Iframe 隱藏標籤,標籤的src指向是服務器servlet,每次觸發時間到servlet時,servlet就會把響應數據寫入Iframe的隱藏標籤,響應的數據的形式是JS可執行代碼,這樣就會自動執行,以達到傳輸數據的目的;
缺點是,不知道鏈接狀態;並且Iframe已通過時

socket.io

代碼地址:https://github.com/socketio/socket.io/
實現了傳統的輪詢機制,包括服務端:
a.Adobe® Flash® Socket
b.AJAX long polling
c.AJAX multipart streaming
d.Forever Iframe
f.JSONP Polling
實現了webSocket,包括服務器的實現,可使用node.js搭建
建立服務器的代碼示例:
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(socket){
socket.on('event', function(data){});
socket.on('disconnect', function(){});
});
server.listen(3000);
相關文章
相關標籤/搜索