SignalR请求管道,Hub生命周期

7
我正在学习使用asp.net webapi的signalR技术,并且我想要了解整个signalR请求/连接流程以及hub的生命周期是什么,谁创建并释放hub实例(它是否在每个客户端和服务器之间的通信中都被创建?)
其中一个原因是我们需要了解在signalR请求场景中如何使用IoC容器,如何正确控制依赖项的生命周期,特别是ISession或DBContext。
1个回答

10

每次客户端请求时都会创建Hub实例,它们不会被保留,因此您不应该将任何状态存储在其中。

通过工厂系统创建Hub,您可以通过其内置的依赖注入机制进行自定义。


你所说的“每个请求”,是指每个 SignalR 消息吗?还是每个连接? - CamHart
1
@CamHart 每个 SignalR 消息。 - Wasp
1
@shatl 可能是可以的,但在我看来你不应该这样做。 - Wasp
@Wasp 不确定这篇文章发布时情况如何,但 Hub 实例并非在每个消息或连接请求时都会被创建。 - Maya
@Maya 对于 SignalR 1 和 2,这在2014年肯定是正确的,您也可以在此处查看官方文档:https://learn.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-server。如果现在不再有效,我不知道,如果您认为如此,欢迎添加新答案描述今天的情况。 - Wasp
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接