91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的

發布時間:2021-09-18 15:35:44 來源:億速云 閱讀:486 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

WebSocket是什么

WebScoket是一種讓客戶端和服務器之間能進行雙向實時通信的技術。它是HTML最新標準HTML5的一個協議規范,本質上是個基于TCP的協議,它通過HTTP/HTTPS協議發送一條特殊的請求進行握手后創建了一個TCP連接,此后瀏覽器/客戶端和服務器之間便可以通過此連接來進行雙向實時通信。

為什么要用WebSocket

1)一直以來,HTTP協議是無狀態、單向通信的,即客戶端請求一次,服務器回復一次。如果想讓服務器消息及時下發到客戶端,需要采用類似于輪詢的機制,即客戶端定時頻繁的向服務器發出請求,這樣效率很低,而且HTTP數據包頭本身的字節量較大,浪費了大量帶寬和服務器資源;

2)為提高效率,出現了AJAX/Comet技術,它實現了雙向通信且節省了一定帶寬,但仍然需要發出請求,本質上仍然是輪詢;

3)新一代HTML標準HTML5推出了WebSocket技術,它使客戶端和服務器之間能通過HTTP協議建立TCP連接,之后便可以隨時隨地進行雙向通信,且交換的數據包頭信息量很小;

如何使用WebSocket

在支持WebSocket的瀏覽器中,創建Socket之后,通過onopen、onmessage、onclose、onerror四個事件的實現來處理Socket的響應;

WebSocket和HTTP、TCP的關系

WebSocket和HTTP都屬于應用層協議,且都是基于TCP的,它們的send函數最終也是通過TCP系統接口來做數據傳輸。那么WebSocket和HTTP的關系呢?WebSocket在建立握手連接時,數據是通過HTTP協議傳輸的,但是在連接建立后,真正的數據傳輸階段則不需要HTTP協議的參與。它們之間的關系如下圖:

什么情況下使用WebSocket

如果游戲需要同時支持手機端、Web端,那毫無疑問應該使用WebSocket,現在各個平臺都提供了相應的WebSocket實現。如果游戲不需要支持Web端,且對實時性要求比較高,如多人射擊、MMORPG之類,那么使用TCP/UDP結合的原生Socket會比較好。

SocketIO是什么

WebSocket是HTML5最新提出的規范,雖然主流瀏覽器都已經支持,但仍然可能有不兼容的情況,為了兼容所有瀏覽器,給程序員提供一致的編程體驗,SocketIO將WebSocket、AJAX和其它的通信方式全部封裝成了統一的通信接口,也就是說,我們在使用SocketIO時,不用擔心兼容問題,底層會自動選用最佳的通信方式。因此說,WebSocket是SocketIO的一個子集。

SocketIO項目使用需要注意事項

WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的

說簡單一點,就是如果使用Socket.IO那么你的客戶端和服務端都必須使用基于它的一套解決方案,這個限制有點太可怕了!

但是.NET是否有一套基于Socket.IO實現的解決方案呢?

答案是肯定的:

SocketIOSharp

https://github.com/uhm0311/SocketIOSharp

.NET項目我們該如何選擇實時通信框架呢?

不太推薦大家使用Socket.IO來作為項目中來實現實時通信的解決方案,因為微軟給我們提供了更強大更好的全家桶!ASP.NET Core要么使用原生的Websocket,要么使用SignalR吧!

SignalR是什么

ASP.NET SignalR 是為 ASP.NET 開發人員提供的一個庫,可以簡化開發人員將實時 Web 功能添加到應用程序的過程。實時 Web 功能是指這樣一種功能:當所連接的客戶端變得可用時服務器代碼可以立即向其推送內容,而不是讓服務器等待客戶端請求新的數據。WebSockets是HTML5提供的新的API,可以在Web網頁與服務器端間建立Socket連接,當WebSockets可用時(即瀏覽器支持Html5)SignalR使用WebSockets,當不支持時SignalR將使用其它技術來保證達到相同效果。

WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的

上述就是小編為大家分享的WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍林郭勒市| 台北市| 奎屯市| 洪湖市| 陆河县| 鹤峰县| 友谊县| 兰州市| 丰宁| 安塞县| 德安县| 丰台区| 莫力| 五原县| 永安市| 长顺县| 庆阳市| 绥芬河市| 潮州市| 新津县| 元阳县| 甘孜县| 合作市| 嘉鱼县| 晋江市| 嵊州市| 锡林浩特市| 榆社县| 门头沟区| 名山县| 调兵山市| 苏尼特右旗| 宣武区| 禹州市| 塔城市| 九龙坡区| 葫芦岛市| 太白县| 辽中县| 社旗县| 盈江县|