ASP.NET Core SignalR 概述
ASP.NET Core SignalR 是一个开源代码库,可以简化在应用中添加实时 web 功能。实时 web 功能使得服务器带宽能够立即将内容推送到客户端。
适合 SignalR 的情况:
需要高频从服务端高频更新的应用,例如有戏,社交网络,投票,拍卖,地图和 GPS 应用等。
仪表盘和监视应用。公司的仪表盘,即时更新的销售记录等
协作类应用。白板应用和团队会议软件
需要通知类的应用
SignalR 提供用于创建服务器到客户端远程过程调用 (RPC) 的 API。 RPC 从服务器端 .NET Core 代码调用客户端上的函数。 提供多个受支持的平台,其中每个平台都有各自的客户端 SDK。 因此,RPC 调用所调用的编程语言有所不同。
以下是 ASP.NET Core SignalR 的一些功能:
自动处理连接管理。
同时向所有连接的客户端发送消息。 例如聊天室。
向特定客户端或客户端组发送消息。
对其进行缩放,以处理不断增加的流量。
SignalR 使用 websockets 技术传输 (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-6.0)
中心(Hubs)
SignalR 使用 中心 在客户端和服务器之间通信。
Hub 是一种高级管道,允许客户端和服务器相互调用方法。 SignalR 自动处理跨计算机边界的调度,并允许客户端调用服务器上的方法,反之亦然。 可以将强类型参数传递给方法,从而支持模型绑定。 SignalR 提供两种内置中心协议:基于 JSON 的文本协议和基于 MessagePack 的二进制协议。 与 ON 相比 JS,MessagePack 通常会创建较小的消息。 旧版浏览器必须支持 XHR 级别 2 才能提供 MessagePack 协议支持。
中心通过发送包含客户端方法的名称和参数的消息来调用客户端代码。 作为方法参数发送的对象使用配置的协议进行反序列化。 客户端尝试将名称与客户端代码中的方法匹配。 当客户端找到匹配项时,它会调用该方法并将反序列化的参数数据传递给它。
评论