gpt4 book ai didi

c# - 使用 SignalR 和 SqlDependency 推送新消息

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:20 27 4
gpt4 key购买 nike

我有一个包含项目的大表,通常每秒插入一些新项目。我想构建一个实时应用程序,用户可以在其中订阅特定类型的项目,并在插入特定类型的项目时获得实时提​​要。

一开始,我用 http://techbrij.com/database-change-notifications-asp-net-signalr-sqldependency但它缺少一些我不确定如何实现的关键部分。

跟踪将哪些消息推送给哪些客户端的最佳方式是什么?我如何跟踪哪些消息已经发送,而无需在每次收到更新时更新“推送”标志的开销?

最佳答案

您可以使用 SqlDependency 类的开源实现 - SqlDependencyEx .它使用数据库触发器和 native Service Broker 通知来接收有关表更改的事件。该组件的测试项目does exactly the same functionality你在找什么。这是一个用法示例:

int changesReceived = 0;
using (SqlDependencyEx sqlDependency = new SqlDependencyEx(
TEST_CONNECTION_STRING, TEST_DATABASE_NAME, TEST_TABLE_NAME))
{
sqlDependency.TableChanged += (o, e) => changesReceived++;
sqlDependency.Start();

// Make table changes.
MakeTableInsertDeleteChanges(changesCount);

// Wait a little bit to receive all changes.
Thread.Sleep(1000);
}

Assert.AreEqual(changesCount, changesReceived);

使用 SqlDependecyEx,您可以分别监视 INSERT、DELETE、UPDATE,并在事件参数对象中接收实际更改的数据 (xml)。希望对您有所帮助。

关于c# - 使用 SignalR 和 SqlDependency 推送新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29677903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com