从后端业务层呼叫SignalR Hub

我有一个MVC网站坐在一些相当沉重的业务对象上 . 我的MVC控制器调用Manager对象,该对象执行并将工作委托给其他对象集 .

基本上代码是深度服务器端,而Hub在某种程度上就像一个Controller,因为它非常接近客户端 .

有没有办法根据传递给这些Manager对象的Hub的引用来执行SignalR方法?

回答(2)

2 years ago

如果您的MVC和SignalR服务在同一进程上运行,您可以调用GlobalHost.ConnectionManager.GetHubContext(“MyHub”);

它们位于不同的进程中,然后您需要在MVC应用程序中创建SignalR客户端

2 years ago

那么所有客户端都将连接到您的Web应用程序并在那里保持连接 . 从单独的后端程序中,您只需在Web应用程序中调用Web服务,该Web服务就可以在Web项目的同一SignalR中心上发布消息 . 您的后端应用无法直接连接到SignalR集线器 . 这一切都流过一个点,作为您的网络应用程序 .

如果您只是在同一个Web应用程序中讨论共享类库,那么您应该能够将中心对象传递给另一个类,因为另一个人回答:GlobalHost.ConnectionManager.GetHubContext(“MyHub”);