我们正在实施Signalr,以便为浏览器客户端提供实时更新。但是我们当时需要让http服务器本身(IIS + ASP)检测来自数据库和外部服务或来自任何其他来源的更改而不进行轮询? 我相信这应该是所有实时网站的常见问题(无论服务器端推送SignalR,Comet或WebSync使用什么技术)。请提供在这种情况下使用的一般方法是什么?
答案 0 :(得分:1)
如果可以,请在更新数据库的任何代码中引发事件。使用该事件来触发消息发布。
Ready to update database -> Update database
-> Publish to WebSync
如果您无法控制更新数据库的代码,请使用SqlDependency类。它允许您定义SELECT语句,然后在该查询的结果发生更改时通知您。使用通知事件来触发消息发布。
Update database -> SqlDependency -> Publish to WebSync