13

我刚刚开始测试 SignalR 以监控应用程序。我有一个控件,它由客户端调用集线器。我注意到,每次客户端创建 Connection.Hub.Start() 它都会在服务器中创建一个新的 Hub 实例,我需要一直刷新我的控件,所以我不希望它为每个创建新的 Hub。

有没有办法为所有客户创建单个集线器,或者我错过了什么?

4

1 回答 1

20

为每个请求创建一个 Hub 实例,就像在 WebForms 中为每个请求创建一个 ASP.NET Page 实例一样,在 ASP.NET MVC 中为每个请求创建一个控制器,或者在使用时为每个服务请求创建一个 WCF 服务实例InstanceMode.PerCall。

如果您想在 Hub 请求/实例之间维护共享状态,您将需要使用静态字段或其他更高级的状态共享形式(例如依赖注入单例)。

于 2012-07-16T15:56:53.603 回答