使用SignalR和SqlDependency推送数据库更新

Wil*_*eer 4 javascript sqldependency asp.net-mvc-3 signalr

是否可以将SignalR与SqlCacheDependency(或SqlDependency)结合使用,将数据库更新直接推送到浏览器?也许有另一种方法来实现这个功能?

我现在唯一可以使用的工作包括必须从执行数据更新的异步调用中调用addMessage,但这并不真正涵盖来自不同源的更新(例如更新表的后台服务).

Ian*_*cer 5

您应该能够在SQLDependency上使用OnChange事件.在您的事件处理程序中,您可以通过SignalR发送消息.由于您将从外部呼叫您的集线器,因此您需要使用此处文档底部显示的技术:

using SignalR.Infrastructure;

IConnectionManager connectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>();
dynamic clients = connectionManager.GetClients<MyHub>(); 
...
Run Code Online (Sandbox Code Playgroud)