当 SignalR 服务推出时,我们能够在经典模式下运行集线器,这允许从无服务器功能 (REST API) 和 ASP.NET Core 集线器 (WS) 进行通信。现在根据azure门户上的警告,经典模式似乎已经过时,不应该使用。
警告消息显示:“经典模式已过时并已删除错误。当所有集线器都有集线器服务器时,请使用默认模式,否则请使用无服务器模式。如果某些集线器具有集线器服务器,而其他集线器没有,我们建议创建两个独立的实例,一个作为默认实例,另一个作为无服务器实例。”
在我们的场景中,我们必须使用用于服务客户端仪表板(JS +其他功能)的 ASP.NET Core 中心和无服务器函数来进行后台处理并将消息发送到 SignalR 服务以在仪表板上查看。正如警告所示,此设置需要在默认模式下运行一个集线器,在无服务器模式下运行一个集线器,假设这些功能将与无服务器通信,并且 ASP.NET 核心将与默认模式集线器通信。
主要问题是,两个 SignalR 服务中心之间的通信将如何发生?我们需要来自无服务器模式的消息显示在默认模式集线器客户端上。这是否是一个有效的场景,或者我们应该将所有内容都转移到一种模式或另一种模式?
我未能在 Microsoft 官方网站上找到任何相关文档,非常感谢任何解释设置外观和工作方式的链接。
最佳答案
对于我们使用无服务器函数直接通过 SignalR 服务向组发送消息的特定用例,答案是使用“默认”模式,此模式将允许同时使用服务器和函数。
关于asp.net - 以不同模式运行多个集线器的 Azure SignalR 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63250190/