我目前正在使用SignalR开发一个实时聊天应用程序。实时聊天应用程序的工作方式如下:
目前,两个应用程序都调用了一个SignalR服务器函数,该函数使用setInterval()从数据库中获取数据,以更新客户机,但这违背了使用SignalR的全部意义。是否有方法轮询服务器端具有后台任务的数据库,然后使用SignalR通知特定用户(接收消息的用户)?如果是,我如何设置后台任务?
发布于 2016-08-11 10:22:24
看起来您需要一种自下而上的通知机制(数据库-应用程序-客户端)。正如@JAG更正建议的那样,您可以使用ADO.NET的工具集中的SqlDependency,这将允许您在消息表中放置一个wach,以便一旦消息发生更改(例如,插入一条消息),就会收到通知。这是一个细例。SqlDependency不会给您插入/更改的实际记录-它只会让您知道发生了更改,因此您需要设计一个查询来获取准确的记录。一旦收到通知,您可以查询该记录,然后从集线器调用客户端的方法,并将记录作为参数传递。
https://stackoverflow.com/questions/38859774
复制相似问题