首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在后台轮询数据库并从服务器通知SignalR?

如何在后台轮询数据库并从服务器通知SignalR?
EN

Stack Overflow用户
提问于 2016-08-09 20:23:51
回答 1查看 754关注 0票数 0

我目前正在使用SignalR开发一个实时聊天应用程序。实时聊天应用程序的工作方式如下:

  1. 注册用户只能与管理员交谈。可以同时连接任意数量的管理员。
  2. 每个管理员可以随时与任何注册用户(甚至离线用户)交谈。
  3. 聊天应用程序的用户端和管理端在两个不同的ASP.NET MVC应用程序中,共享相同的数据库。(这是用户的要求)
  4. 所有消息一发送就存储在数据库中。

目前,两个应用程序都调用了一个SignalR服务器函数,该函数使用setInterval()从数据库中获取数据,以更新客户机,但这违背了使用SignalR的全部意义。是否有方法轮询服务器端具有后台任务的数据库,然后使用SignalR通知特定用户(接收消息的用户)?如果是,我如何设置后台任务?

EN

回答 1

Stack Overflow用户

发布于 2016-08-11 10:22:24

看起来您需要一种自下而上的通知机制(数据库-应用程序-客户端)。正如@JAG更正建议的那样,您可以使用ADO.NET的工具集中的SqlDependency,这将允许您在消息表中放置一个wach,以便一旦消息发生更改(例如,插入一条消息),就会收到通知。这是一个细例。SqlDependency不会给您插入/更改的实际记录-它只会让您知道发生了更改,因此您需要设计一个查询来获取准确的记录。一旦收到通知,您可以查询该记录,然后从集线器调用客户端的方法,并将记录作为参数传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38859774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档