ASP.Net Core开发(踩坑)指南 (6)

  

ASP.Net Core开发(踩坑)指南

 

  更多信息参考文档:https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.1

SignalR

  SignalR是用于客户端服务器实时通信的工具库,从ASP.NET中就具有该功能,ASP.NET Core中的SignalR概念与用法与原来基本一致,但也存在一些区别:
  1. 支持更多的客户端,.Net客户端、Java客户端、Js客户端以及非官方的C++客户端、Swift客户端。
  2. 当链接SignalR并通过身份验证后,SignalR会保存当前用户链接SignalR的ID以及通过验证后的用户名,可以通过用户名向用户客户端推送消息。
  3. 在应用程序中可以通过IHubContext<HubType>方式,对SignalR上下文进行注入,并且可以直接通过该上下文推送数据给已经链接的客户端,IHubContext<HubType>实际上是GlobalHost.ConnectionManager.GetHubContext<HubType>()的替代方式。
  4. ASP.NET Core中通过app.UserSignalR以及route参数来映射一个Hub,每一个Hub拥有独立的上下文,因此如果要使用IHubContext<HubType>来向客户端推送信息,那么必须准确注明Hub的类型,如下图代码应该使用IHubContext<ChatHub>,不能使用除ChatHub以外的类型(基类也不行)。

  

ASP.Net Core开发(踩坑)指南

  5. SignalR默认使用Json协议传输数据,默认情况下使用首字母小写的驼峰命名方式序列化对象,要更改该默认行为需要通过一下代码,替换默认的序列化行为:

  

ASP.Net Core开发(踩坑)指南

  6. ASP.NET Core的客户端代码(特指Js客户端)有变更,需要对应版本使用。
  关于更多SignalR内容请参考文档:https://docs.microsoft.com/en-us/aspnet/core/signalr/introduction?view=aspnetcore-2.1

小结

  本文主要介绍了ASP.NET Core中Mvc、WebAPI以及SignalR开发时与原来ASP.NET中的一些细小区别和新特性,整体来说ASP.NET Core与ASP.NET从使用方式上基本上是一致的,这也使得从ASP.NET迁移到ASP.NET Core变得更加容易,但可能因为这些细小的问题往往会向代码中埋入一些坑,所以特别编写了本文来解释这些问题。
  总的来说ASP.NET Core的文档相当齐全,本文中大部分内容实际都是文档中提到的,所以建议大家在使用ASP.NET Core开发时,首先第一步就是熟读文档,避免遗漏细节。希望本篇文章对大家有帮助(*^_^*)

参考:

  https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.1

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpszyp.html