我是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(); } } }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。