今天想要练习一个简单的聊天室,输入使用者名称後,就可以进房聊天,主要使用 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。
新增一个资料夹 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。
>>: [2020铁人赛Day26]糊里糊涂Python就上手-Numpy的观念与运用(上)
类是通过class关键字来定义的,是对某个物件的定义,包含有关物件名称、方法、属性和事件,不过实际上...
Hi Dai Gei Ho~ 我是 Winnie ~ 在今天文章中,我们要来说说 Vue3 Comp...
大家好! 我们今天要实作让视窗能平滑地滚动到锚点。 我们进入今天的主题吧! 程序码 (functio...
大量的资料势必可能来自不同资料源,在结构化资料库的世界常用的就是联合查询。那如果我的资料不全都在结构...
在了解 first-class 一等公民函式前,我们先来看看 MDN 对於 first class ...