真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

專注于為中小企業(yè)提供成都網(wǎng)站設計、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)余慶免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

WebSocket是什么

WebScoket是一種讓客戶端和服務器之間能進行雙向?qū)崟r通信的技術(shù)。它是HTML最新標準HTML5的一個協(xié)議規(guī)范,本質(zhì)上是個基于TCP的協(xié)議,它通過HTTP/HTTPS協(xié)議發(fā)送一條特殊的請求進行握手后創(chuàng)建了一個TCP連接,此后瀏覽器/客戶端和服務器之間便可以通過此連接來進行雙向?qū)崟r通信。

為什么要用WebSocket

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

2)為提高效率,出現(xiàn)了AJAX/Comet技術(shù),它實現(xiàn)了雙向通信且節(jié)省了一定帶寬,但仍然需要發(fā)出請求,本質(zhì)上仍然是輪詢;

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

如何使用WebSocket

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

WebSocket和HTTP、TCP的關(guān)系

WebSocket和HTTP都屬于應用層協(xié)議,且都是基于TCP的,它們的send函數(shù)最終也是通過TCP系統(tǒng)接口來做數(shù)據(jù)傳輸。那么WebSocket和HTTP的關(guān)系呢?WebSocket在建立握手連接時,數(shù)據(jù)是通過HTTP協(xié)議傳輸?shù)模窃谶B接建立后,真正的數(shù)據(jù)傳輸階段則不需要HTTP協(xié)議的參與。它們之間的關(guān)系如下圖:

什么情況下使用WebSocket

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

SocketIO是什么

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

SocketIO項目使用需要注意事項

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

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

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

答案是肯定的:

SocketIOSharp

https://github.com/uhm0311/SocketIOSharp

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

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

SignalR是什么

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

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

上述就是小編為大家分享的WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


名稱欄目:WebSocket和SocketIO以及SignalR的作用以及用法是怎樣的
網(wǎng)站地址:http://weahome.cn/article/piedhd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部