2

我正在阅读有关 Azure SignalR 服务的非常有限的信息以及快速入门指南,并希望确保我正确理解了这一点。

我们似乎仍然有一个hub,如果我理解正确的话,Azure SignalR 服务的功能就是简单地将消息推送到连接的客户端。

就我而言,我存储了聊天历史记录,因此通过点击第hub一个,我仍然可以使用我的后端逻辑来保存聊天历史记录或执行我可能想要的任何其他处理。然后只需允许 Azure SignalR 服务将数据推送到连接的客户端。

主要好处似乎是处理服务的扩展。

我做对了吗?

4

2 回答 2

3

是的,你完全正确。

您将使用与 ASP.NET Core SignalR 完全相同的 API 来编写业务逻辑,这意味着当来自客户端的消息到达您的集线器时,您可以保留任何您想要的东西。

Azure SignalR 服务将是您的应用服务器和连接的客户端之间的基础传输。例如,当您想向所有客户端广播消息时,实际上您只向 Azure SignalR 服务发送一条消息,该服务会为您向所有客户端广播消息。这样您就不必担心横向扩展。Azure SignalR 服务将为您处理横向扩展。

于 2018-05-09T20:51:08.790 回答
1

你理解正确。

SignalR 尚未准备好投入生产(当谈到 ASP.NET Core 时),用于 ASP.NET MVC 的 SignalR 已经存在了一段时间(稳定)。

SignalR 由两部分组成:服务器和客户端。服务器就像您描述的那样:一个“集线器”,您可以使用它来将信息推送到客户端。

在网页上,您加载一段生成的 javascript(从您的集线器定义自动生成)。基本上,您让您的网站访问者(客户端)通过 signalR 的机制连接到集线器(signalR 将根据浏览器选择正确的连接方式),然后“订阅”您在集线器中活动的不同方法。

工作原理很简单:每当您调用集线器中的代码(可以来自客户端,或来自后端代码)时,都会自动为您处理与所有订阅客户端的通信。

注意:如果您在 azure web 应用程序上运行它:启用“始终开启”设置,并将“websockets”切换设置为“启用”,否则您会看到奇怪的行为。

注意 2:signalR core 1.0 的 RC 版本刚刚发布(2018 年 5 月 7 日),因此该软件可能需要一段时间才能开始稳定并通过公共 nuget/npm 渠道提供。

于 2018-05-09T19:24:12.937 回答