什么时候应该使用SignalR自托管,什么时候不应该



我在我的项目中使用SignalR的阶段,我不明白什么时候使用Self托管选项,什么时候我们不应该使用。例如,如果我愿意将web应用程序托管在服务器场,

  • 将有单独的主机服务器
  • 在每个IIS服务器中单独的SignalR集线器

如果我们想广播消息到每个客户端,这是如何在SignalR

中工作的

SignalR在多个实例中运行的想法是连接到实例A的客户端无法从连接到实例b的客户端获取消息

(SignalR scaleout文档)

然而,当您扩展时,客户端可以被路由到不同的服务器。连接到一个服务器的客户端将无法接收从其他服务器发送的消息。

这个问题的解决方案是使用backplane -每次服务器接收到消息时,它都会将其转发给所有其他服务器。您可以使用Azure服务总线,Redis或SQL来完成此操作。

在我看来,当你不想让整个IIS运行时(因为你有一些轻量级的操作,不需要所有的IIS繁重),或者你根本不想要一个web服务器(例如,你想添加实时功能到一个已经存在的,让我们说表单应用程序,或在任何其他进程),你使用self host选项。

请务必阅读自托管SignalR的文档,并决定是否真的需要自托管SignalR。

如果你在IIS下开发一个web应用程序,我不认为你有任何理由想要自托管SignalR。

希望这对你有帮助。祝你好运!

相关内容

  • 没有找到相关文章

最新更新