我正在使用SignalR的中心功能(https://github.com/SignalR/SignalR)向所有订阅的客户端发布消息:
public class NewsFeedHub : Hub
public void Send(string channel, string content)
{
Clients[channel].addMessage(content);
}
Run Code Online (Sandbox Code Playgroud)
这通过Javascript调用"发送"时工作正常,但我也希望Web应用程序发布消息(来自ASP.NET MVC操作方法).我已经尝试实例化新对象ob NewsFeedHub并调用Send方法,但这会导致错误(因为未设置Hub的基础"连接").有没有办法在没有连接的情况下使用Hub?
我目前正在尝试RC2发布,ASP.NET Core我遇到了一个问题SignalR.我需要能够在请求线程之外向客户端发送消息.
现在在完整的.NET框架中,您可以这样做:
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.<SendMessage>()
Run Code Online (Sandbox Code Playgroud)
但在ASP.NETCore中没有GlobalHost.
我发现了一个类似的问题: 如何在vNext项目中获取SignalR Hub上下文?
第二个答案提供了一种在请求线程之外获取hubcontext的方法,但这也不起作用ASP.NET Core.
所以我的问题是:如何在ASP.NET Core中的请求范围之外获取集线器上下文?