使用Signalr进行某些记录

时间:2016-02-29 22:51:49

标签: asp.net-mvc-5 signalr

我正在使用 asp.net MVC sql server

我有一些测试人员有一些详细的记录。对于每个测试者,至少有100个详细记录。当某个列在此详细表中更新时,我需要将更新的数据发送到此特定记录(testerID)。 例如:

  • testerid = 1,详细表格有100条记录,其中testerID = 1,当testertable得到更新后,更新此测试记录的视图。如果用户在其网页中打开了另一个测试人员,则更改任何其他测试人员的详细记录不应刷新此视图。

目前我使用polling timer.js并与db通信以检查数据库是否已更改并更新视图。为了这个目的,我想使用 signalR SignalR 正确的技术?

1 个答案:

答案 0 :(得分:0)

如果您可以访问实际执行更新的代码,那么是的,这是可能的。 (例如,如果您使用Entity Framework执行此操作并且您可以访问代码)。

更新有关特定MasterId的值时,只需更新连接到MasterId实例的所有客户端。

为此,您还需要在用户和他们打开的页面之间保持映射(在SignalR ConnectionIdMasterId之间。

假设您List<string> connectionIds包含与ConnectionId相关联的所有MasterId个客户,那么您可以通过以下方式向他们发送通知:

foreach(var connectionId in connectionIds)
{
Clients.Client(connectionId).doSomething(param list);
}

您应该了解的主要内容:

  • 确保您可以访问实际执行更新的代码
  • 确保使用特定的主标识符保持客户端的连接ID与客户端之间的映射。

希望这有帮助!

祝你好运!