ASP.NET Core SignalR 是一个开源库,它简化了向应用程序添加实时 web 功能的功能。 实时 Web 功能使服务器端代码能够即时将内容推送到客户端。
适用于 SignalR的候选项:
SignalR 提供用于创建服务器到客户端远程过程调用(RPC)的 API。 Rpc 在客户端上从服务器端.NET Core 代码中调用 JavaScript 函数。
下面是 ASP.NET Core SignalR 的一些功能:
源托管在GitHub 上的SignalR 存储库中。
SignalR 支持以下用于处理实时通信的技术(按正常回退的顺序):
SignalR 会自动选择服务器和客户端功能内的最佳传输方法。
SignalR 使用集线器在客户端和服务器之间进行通信。
“中心”是一种高级管道,允许客户端和服务器相互调用方法。 SignalR 会自动处理计算机边界中的调度,从而允许客户端在服务器上调用方法,反之亦然。 可以将强类型参数传递给方法,从而启用模型绑定。 SignalR 提供了两种内置的集线器协议:基于 JSON 的文本协议和基于MessagePack的二进制协议。 与 JSON 相比,MessagePack 创建的消息通常比较小。 旧版浏览器必须支持 XHR 2 才能提供 MessagePack 协议支持。
中心通过发送包含客户端方法的名称和参数的消息来调用客户端代码。 使用配置的协议对作为方法参数发送的对象进行反序列化。 客户端会尝试将方法名称与客户端代码中的方法匹配。 当客户端找到匹配项时,它会调用该方法并将反序列化的参数数据传递给它。