天天看點

Asp.Net SignalR - 準備工作實時通訊不得不說的Owin

在做Web的時候經常會有用戶端和服務端實時通訊的需求,比如即時聊天等。目前實時通訊有很多種規範和實作方式,但是每一個對浏覽器的相容性或者性能都不是很完美。

目前主流的解決方案有

WebSocket   使用ws協定基于tcp SSE  訂閱伺服器事件方式 長連接配接 輪詢

而sigualR對這些都進行了封裝,使得我們不用去關心到底是什麼實作,是websocket還是sse,它會根據目前浏覽器的相容性來做做好的選擇。

建立一個owin的啟動類,然後添加一個signalR的永久連結類 起名為 MyConnetion1

在html中代碼也是非常簡單的

先不用管是做什麼,把連接配接的loggin設定為true,運作項目就可以看到如下的log資訊,可以明确的看到這裡使用的是WebSocket

Asp.Net SignalR - 準備工作實時通訊不得不說的Owin

可以看到之前的simple demo中建立了一個owin的起始類,這是owin是個什麼東西呢

owin是一個規範,下面引用的是部落格員dudu的圖與一些解釋

owin是針對 .net平台的開放web接口,owin就是.net web應用程式與web伺服器之間的接口。owin使得應用程式不依賴于web伺服器,它們通過接口來進行工作,而更換其它的web伺服器隻要符合 owin 接口的規範都是沒有問題的。

owin是典型的擴充卡模式

Asp.Net SignalR - 準備工作實時通訊不得不說的Owin

owin把Web應用的解決方案進行了分層

host  宿主 service  伺服器  伺服器可以是iis也以是其它的 Middleware  中間件,  中間件用來豐富service達到功能添加 application  應用

katana就是owin規範的實作,而.net的Mvc項目也已經實作了owin規範,是以那些噴.net不能跨平台的,都是to young。姿勢水準還需要提升啊。

Startup類是我們的owin入口點,我們可以在裡寫入代碼把中間件打入owin管道

Asp.Net SignalR - 準備工作實時通訊不得不說的Owin

繼續閱讀