Signalr自託管最簡實踐
最近幾天,專案要開發一個即時通訊的產品,同時需要把服務端嵌入到已有的winform程式裡,也就是說,不能依賴網站釋出器(iis、tomcat、apache等)。
於是查了大量資料,發現絕大部分的資料,都是講的如何託管在web應用裡,真正其他託管的很少,即便有,往往也介紹不全,照抄之後,跑不起來。
於是花了一些時間,寫了一個自託管的signalr應用,現在把最簡配置記錄如下,希望對大家有所幫助。
首先,這個signalr服務端,是託管在winform程式裡,因此,第一步是建立一個winform專案ChatMgr, 同時建立一個空的web站點Test用來測試。
然後通過nuget給ChatMgr專案安裝Microsoft.AspNet.SignalR.SelfHost 和 Microsoft.Owin.Cors元件
接著給ChatMgr程式新增Signalr控制類Signalr.cs
這裡面有兩個物件類,一個是註冊signalr服務的啟動類Startup,一個是signalr控制器(集線器),具體資訊互動處理的實現類,
這裡只簡單實現一個資訊交換傳遞的方法。
接下來是在winform應用的入口處啟動signalr服務:
這裡注意,你註冊的signalr服務的domain,就是客戶端訪問的domain。
到這一步,服務端程式就建立好了,接下來搭建測試環境:
首先用nuget給測試站點新增jquery 和 Microsoft.AspNet.SignalR.JS的包引用
然後是一個簡單的測試頁,照搬的網上一個資料內容:
這裡也有注意事項,一是signalr.js依賴jquery,因此需要引用適當版本的jquery,
其次是在引用了signalr.js後,還需要配置服務端虛擬路徑,也就是上圖中紅框標註的空引用。
最後是整個專案的全家福:
接著執行起來測試一下,首先執行winform程式,啟動服務,
然後開啟網頁,嘗試發訊息:
ok,程式完全跑通!
今天給signalr服務新增了主推功能,根據網上資料,有三種實現方法,也列舉一下:
相關文章
- Serverless實踐-靜態網站託管Server網站
- CICD最簡實踐————github actionsGithub
- 終極自託管解決方案指南
- Code:美團程式碼託管平臺的演進與實踐
- kubeCDN:一個基於Kubernetes的自託管CDN
- Uptime Kuma | 超棒的自託管監控工具
- 最簡單的微服務部署測試實踐微服務
- 託管C++執行緒鎖實現C++執行緒
- 伺服器託管是什麼意思,為什麼要託管?伺服器
- 最簡容器化動手小實踐——再戰flappybirdAPP
- 重學c#系列——c# 託管和非託管資源(三)C#
- 【SignalR全套系列】之在.Net Core 中實現SignalR實時通訊SignalR
- ASP.NET Core的實時庫: SignalR簡介及使用ASP.NETSignalR
- SignalR簡版web聊天室(實現過程分析篇)SignalRWeb
- 自動共享和上傳檔案到相容的託管站點
- 一個自託管免費開源的人臉識別系統
- 自託管服務清單——GitHub 熱點速覽 v.21.01Github
- 從C++看C#託管記憶體與非託管記憶體C++C#記憶體
- 博森量化軟體:託管錢包與非託管錢包的區別?
- 託管堆和垃圾回收(GC)GC
- 微信公眾號託管
- 搭建自己的harbor(docker託管)Docker
- SignalR簡版web聊天室(demo簡單演示篇)SignalRWeb
- 自動定位問題、自動修復故障?託管雲這個功能有點心動
- 微信雲託管 WebSocket 實戰:基於模版實現訊息推送Web
- Git 託管平臺新增專案Git
- 伺服器託管大寬頻伺服器
- 託管堆記憶體佔用記憶體
- 華為開發者 雲託管
- 一文讀懂「雲託管」
- 你需要託管資料庫嗎?資料庫
- signalrSignalR
- 愛彼迎如何實現聯合房東的共同託管?
- 重學c#系列——c# 託管和非託管資源與程式碼相關(四)C#
- 最簡容器動手小實踐——FC坦克大戰遊戲容器化遊戲
- 【YashanDB知識庫】ycm託管資料庫時,資料庫非OM安裝無法託管資料庫
- Knative Serverless 之道:如何 0 運維、低成本實現應用託管?Server運維
- 6 個託管 git 倉庫的地方Git