我的理解是,每次客户端调用集线器方法(通过其集线器代理)时,都会创建一个新的服务器端Hub实例 . 但是,如果我想要一个仅使用(通过服务器业务逻辑)使用以下语法向客户端发送消息的集线器:

Clients.All.Notify(data);

顺便说一下,我会使用.Net客户端,它会使用这种语法接收这样的消息: -

_myHubProxy.On<SomeData>("Notify", data => ...);

如果客户端从不调用任何集线器方法,那么集线器是否会被实例化?

Edit Nikola.Lukovic提供的文章(见下面的评论)说:

SignalR每次需要处理Hub操作时都会创建Hub类的新实例,例如客户端连接,断开连接或对服务器进行方法调用时 .

虽然我(有点)理解每次调用方法时需要实例化集线器,但我很好奇为什么在连接(和断开连接)时它也必须这样做 . 我想知道它的任务之一是在Hub和客户端集线器代理上指定的任何 On<T> 事件处理程序之间设置"link"吗?