c# – SignalR Hub上下文中没有客户端
发布时间:2020-12-15 21:58:40 所属栏目:百科 来源:网络整理
导读:我是SignalR的新手,正在尝试设置一个可用于将事件发送到其他应用程序的自托管服务.我在获取所有客户端上调用方法时遇到问题.在下面的代码中_context.Clients.All始终为空.有任何想法吗? 测试方法: var server = new SignalRServer();server.Start("http://
我是SignalR的新手,正在尝试设置一个可用于将事件发送到其他应用程序的自托管服务.我在获取所有客户端上调用方法时遇到问题.在下面的代码中_context.Clients.All始终为空.有任何想法吗?
测试方法: var server = new SignalRServer(); server.Start("http://localhost:8555"); var hubConnection = new HubConnection("http://localhost:8555"); var proxy = hubConnection.CreateHubProxy("testHub"); var executed = false; proxy.On("testMethod",() => { executed = true; }); hubConnection.Start().Wait(); var hub = new TestHubContext(GlobalHost.ConnectionManager.GetHubContext<TestHub>()); hub.Test(); hubConnection.Stop(); server.Stop(); 自主服务器: public class SignalRServer { private IDisposable _signalR; public void Start(string url) { _signalR = WebApp.Start<SignalRStartup>(url); } public void Stop() { _signalR.Dispose(); } } public class SignalRStartup { public static IAppBuilder App = null; public void Configuration(IAppBuilder app) { app.UseCors(CorsOptions.AllowAll); app.MapSignalR(); } } 毂: public class TestHub : Hub { } public class TestHubContext { private IHubContext _context; public TestHubContext(IHubContext context) { _context = context; } public void Test() { if (_context != null) { // At this poing _context.Clients.All is always empty _context.Clients.All.testMethod(); } } } 解决方法
我认为您的上下文/客户端连接很好.没有进一步的信息我猜你的问题是你在调用hub.Test()后关闭你的连接和服务器太快
注释掉两个.Stop()调用(并在其中粘贴Console.ReadLine以保持控制台打开),看看会发生什么 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |