iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
1

今天想要練習一個簡單的聊天室,輸入使用者名稱後,就可以進房聊天,主要使用 ASP.NET SingalR,這篇主要後端的部分。

ASP.NET SingalR

SingalR 主要是微軟推出的雙向即時通訊的解決方案。

我自己後端是 ASP.NET Web API 的專案。
第一步就是用 nuget 安裝套件
這個是 SingalR 套件。
https://www.nuget.org/packages/Microsoft.AspNet.SignalR/2.4.1
這個是 Owin CORS 套件。
https://www.nuget.org/packages/Microsoft.Owin.Cors

建立 Startups.cs 新增項目,直接查詢 owin,基本應該可以找到 OWIN 啟動類別。

Startups.cs
預設其實只有要寫 app.MapSignalR(); ,我會寫成 app.Map("/signalr", map => {...}); 主要是因為我希望他的 Cors 只影響到 SignalR 本身。
我之前是寫 app.UseCors(CorsOptions.AllowAll); 導致我在打其他 API 的時候他說我有多個 CORS 的 Header。

建立 Hub

新增一個資料夾 Hubs,然後新增項目,找到 SignalR 然後選 SignalR Hub Class (v2)

建立一個 ChatHub

簡單的驗證

建立一個 MVC 的空白 Controller,寫一個空白的 Action。

View 的內容

結果

小結語
為什麼這次的練習要分篇,主要是因為 ASP.NET SingalR 我自己很久沒有用了,複習一下。
特別是因為之前都是在同一個網站,現在前後端分離,遇到了 CORS 的問題。
明天會弄一篇 Chat & SignalR (Ionic) ,練習的時候,上網找了很多的資料,特別是在 Angular 使用中 SignalR 的部分,但是我研究了很久,很多詭異的錯誤,外加因為我的後端架在 IIS 的虛擬目錄下,導致 <script src="~/signalr/hubs"></script> 前端一直 404 Not Found。


上一篇
Browser
下一篇
Chat & SignalR (Ionic)
系列文
純粹沒有寫過行動,Ionic 學習中...30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言