我刚刚开始测试SignalR以监控应用程序。我有一个控制器,可以通过客户端调用Hub。我注意到,每次客户端使Connection.Hub.Start()在服务器中创建一个新的Hub实例时,我需要一直刷新我的控件,所以我不希望它为每个实例创建新的Hub。
有没有办法为所有客户创建单一的Hub,或者我错过了什么?
答案 0 :(得分:20)
为每个请求创建一个Hub实例,就像为WebForms中的每个请求创建一个ASP.NET页面实例一样,为ASP.NET MVC中的每个请求创建一个Controller,或者为每个服务创建一个WCF服务实例使用InstanceMode.PerCall时请求。
如果要维护Hub请求/实例之间的共享状态,则需要使用静态字段或其他更高级的状态共享形式(例如依赖注入单例)。