webSocket筆記
什麼是webSocket?
WebSocket 是 HTML5 開始提供的一種在單個 TCP 連線上進行全雙工通訊的協議。
webSocket的作用以及使用場景
WebSocket 使得客戶端和伺服器之間的資料交換變得更加簡單,允許服務端主動向客戶端推送資料。在 WebSocket API 中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以建立永續性的連線,並進行雙向資料傳輸,很多網站為了實現推送技術,所用的技術都是 Ajax 輪詢。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對伺服器發出HTTP請求,然後由伺服器返回最新的資料給客戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向伺服器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的資料可能只是很小的一部分,顯然這樣會浪費很多的頻寬等資源。
HTML5 定義的 WebSocket 協議,能更好的節省伺服器資源和頻寬,並且能夠更實時地進行通訊。
如何使用webSocket
瀏覽器通過 JavaScript 向伺服器發出建立 WebSocket 連線的請求,連線建立以後,客戶端和伺服器端就可以通過 TCP 連線直接交換資料。
當你獲取 Web Socket 連線後,你可以通過send()
方法來向伺服器傳送資料,並通過onmessage
事件來接收伺服器返回的資料。
以下 API 用於建立 WebSocket 物件。
var Socket = new WebSocket(url, [protocol] );
下面貼一段例項程式碼,僅供參考
function WebSocketTest()
{
if ("WebSocket" in window)
{
alert("您的瀏覽器支援 WebSocket!");
// 開啟一個 web socket
var ws = new WebSocket("ws://localhost:9998/echo");
ws.onopen = function()
{
// Web Socket 已連線上,使用 send() 方法傳送資料
ws.send("傳送資料");
alert("資料傳送中...");
};
ws.onmessage = function (evt)
{
var received_msg = evt.data;
alert("資料已接收...");
};
ws.onclose = function()
{
// 關閉 websocket
alert("連線已關閉...");
};
}
else
{
// 瀏覽器不支援 WebSocket
alert("您的瀏覽器不支援 WebSocket!");
}
}
最後在文章的結尾還是提醒一下大家,webSocket作為H5的協議,在使用上要注意相容性問題
相關文章
- WebSocket 學習筆記Web筆記
- websocket以及http的區別筆記WebHTTP筆記
- 《圖解HTTP》學習筆記(附帶WebSocket知識點)圖解HTTP筆記Web
- 《菜農升職記》之 WebsocketWeb
- php redis 處理websocket聊天記錄PHPRedisWeb
- 記錄使用websocket時因為Sec-Websocket-Protocol遇到的一個問題WebProtocol
- WebSocket 服務掛掉問題記錄Web
- 印象筆記 --- 方法分享筆記筆記
- 筆記筆記
- websocketWeb
- WebSocket的SSL認證失敗問題記錄Web
- 【譯】WebSocket協議第三章——WebSocket網址(WebSocket URIs)Web協議
- WebSocket的故事(一)—— WebSocket的由來Web
- 深入淺出Websocket(一)Websocket協議Web協議
- 記一次websocket的自動斷開連線Web
- 記一次線上websocket返回400問題排查Web
- docker 筆記Docker筆記
- hybrid筆記筆記
- Meteor筆記筆記
- String筆記筆記
- html 筆記HTML筆記
- kafka 筆記Kafka筆記
- 路由筆記路由筆記
- 筆記1筆記
- 筆記-FMDB筆記
- ES筆記筆記
- 筆記:Docker筆記Docker
- Liunx筆記筆記
- Shadowsocks 筆記筆記
- AbstractQueuedSynchronizer筆記筆記
- 筆記:Spring筆記Spring
- jQuery筆記jQuery筆記
- Restful 筆記REST筆記
- Cookie筆記Cookie筆記
- grpc 筆記RPC筆記
- canvas筆記Canvas筆記
- 隨筆記筆記
- java 筆記Java筆記