从外部Web请求通知SignalR客户端

时间:2013-03-20 18:05:02

标签: asp.net-mvc-4 signalr signalr-hub

我有一个基于ASP.NET MVC 4插件的webapp,其插件包含一个侦听器类,在后台运行,侦听SQL Server Broker队列上的消息。当新消息到达时,我想将它们推送到所有连接的客户端。

我创建了一个通知中心,从客户端发送到服务器时效果很好,但我用来向客户端发送更新的代码没有做任何事情。

var context = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
context.Clients.All.dataUpdated(message.Data);

我尝试过使用

using (var timerScope = AutofacDependencyResolver.Current.ApplicationContainer.BeginLifetimeScope("httpRequest"))
{
    var connMgr = timerScope.Resolve<IConnectionManager>();
    var context = connMgr.GetHubContext<NotificationHub>();
    context.Clients.All.dataUpdated(message.Data);
}

但是我只得到一个带有错误消息的InvalidOperationException:“由于HttpContext不可用,因此无法创建请求生存期范围。”

可以理解,因为我试图在网络请求之外拨打电话。

我正在尝试做什么?我已经看到一些使用webrequest连接到自己发送消息的例子,但我正在寻找一种更清洁的方式,而且我真的不想去完全成熟的消息总线。

0 个答案:

没有答案