摘要:跟沒有關系,只是復用了握手通道,用來升級協(xié)議。的作用輪詢客戶端以一定的時間間隔向服務端發(fā)出請求,以頻繁請求的方式來保持客戶端和服務器端的同步。如果在設定的時間段內(nèi)未收到通知,則服務器發(fā)送響應以終止打開的請求。
webSocket是什么
webSocket是HTML5新出的一種協(xié)議,底層是基于TCP/IP協(xié)議的。跟http沒有關系,只是復用了http握手通道,用來升級協(xié)議。
webSocket的作用輪詢:客戶端以一定的時間間隔向服務端發(fā)出請求,以頻繁請求的方式來保持客戶端和服務器端的同步。缺點:
瀏覽器需要不斷的向服務器發(fā)出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的數(shù)據(jù)可能只是很小的一部分,顯然這樣會浪費很多的帶寬等資源。
長輪詢:瀏覽器向服務器發(fā)送請求,服務器將請求保持打開一段時間。如果在該時間段內(nèi)收到通知,則將包含該消息的響應發(fā)送到客戶端。如果在設定的時間段內(nèi)未收到通知,則服務器發(fā)送響應以終止打開的請求。缺點:
當具有較高的消息量時,長輪詢不會提供比傳統(tǒng)輪詢更大的性能改進
服務器端會阻塞請求直到有數(shù)據(jù)傳遞或超時才返回
使用webSocket瀏覽器和服務器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進行雙向數(shù)據(jù)傳輸。
優(yōu)點:
能更好的節(jié)省服務器資源和帶寬
支持雙向通信,實時性更強
可以發(fā)送文本,也可以發(fā)送二進制數(shù)據(jù)
webSocket的使用服務端:
var app = require("express")(); var WebSocket = require("ws"); var wss = new WebSocket.Server({ port: 8080 }); wss.on("connection", function connection(ws) { ws.on("message", function incoming(message) { console.log(message); }); ws.send("the content from server"); }); app.listen(3000,() => { console.log("you are listening port 3000"); });
客戶端:
webSocket應用場景社交聊天、彈幕、多玩家游戲、協(xié)同編輯、股票基金實時報價、體育實況更新、視頻會議/聊天、基于位置的應用、在線教育、智能家居等需要高實時的場景
參考資料:
Comet:基于 HTTP 長連接的“服務器推”技術
Benefits of WebSocket
WebSocket:5分鐘從入門到精通
《web性能優(yōu)化權威指南》
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/98148.html
摘要:概述本文是系列的第一篇,主要介紹相關的基礎協(xié)議知識和??蛻舳耸盏巾憫?,立即發(fā)起下一次的請求。收到消息通過事件來接收消息。類型則需要傳遞一個對象作為參數(shù),相關的內(nèi)容也將在本系列第二篇中進行介紹。 概述 本文是WebSocket系列的第一篇,主要介紹WebSocket相關的基礎協(xié)議知識和API。由于WebSocket的相關介紹在MDN中分布較亂,初學者不太容易入門,因此通過本文將相關基礎...
摘要:服務端確認協(xié)議版本,升級為協(xié)議。自己寫了一個例子,服務端在開始連接后,利用定時器主動向客戶端發(fā)送隨機數(shù),客戶端也可以發(fā)給服務器消息,然后服務器返回這條消息給客戶端。 寫在前面 webSocket是一項可以讓服務器將數(shù)據(jù)主動推送給客戶端的技術。前幾天寫了一個日志功能,日志數(shù)據(jù)需要實時更新。正好項目中有封裝好的WebSocket組件,且接口支持webSocket,就用它實現(xiàn)了。也是第一次用...
摘要:服務端確認協(xié)議版本,升級為協(xié)議。自己寫了一個例子,服務端在開始連接后,利用定時器主動向客戶端發(fā)送隨機數(shù),客戶端也可以發(fā)給服務器消息,然后服務器返回這條消息給客戶端。做的事情就是給頁面的元素綁定事件。 寫在前面webSocket是一項可以讓服務器將數(shù)據(jù)主動推送給客戶端的技術。前幾天寫了一個日志功能,日志數(shù)據(jù)需要實時更新。正好項目中有封裝好的WebSocket組件,且接口支持webSock...
摘要:簡單實現(xiàn)參考此文章只限于版本大于前期準備端這里會在開始連接時就調(diào)用這里會挺住等待發(fā)送消息先執(zhí)行這里在這里停住等待二加密實現(xiàn)這里應該是要填寫加密的文件此處沒有深入研究三服務器和瀏覽器的實現(xiàn)此處先執(zhí)行代碼然后再打開瀏覽器就可以看到過程同步例子 簡單實現(xiàn) 參考:https://websockets.readthedoc...PS:此文章只限于python版本大于3.6 前期準備 pip in...
摘要:概述本文為協(xié)議的第十一章,本文翻譯的主要內(nèi)容為的相關注意事項。應用協(xié)議使用這個協(xié)議規(guī)范互操作性注意事項使用時需要使用或者更高版本的協(xié)議。安全性注意事項見安全性注意事項一節(jié)。 概述 本文為 WebSocket 協(xié)議的第十一章,本文翻譯的主要內(nèi)容為 WebSocket 的 IANA 相關注意事項。 IANA 注意事項(協(xié)議正文) 11.1 注冊新 URI 協(xié)議 11.1.1 注冊 ws 協(xié)...
閱讀 2439·2021-11-24 11:16
閱讀 2174·2021-09-30 09:47
閱讀 2086·2021-09-10 10:51
閱讀 1376·2019-08-30 14:08
閱讀 3201·2019-08-30 13:47
閱讀 1604·2019-08-30 13:02
閱讀 3283·2019-08-29 12:29
閱讀 3357·2019-08-26 17:05