如何使用 Redis Pub/Sub 数据实时更新 ASP.NET 应用程序中的 html table?
How do I use Redis Pub/Sub data to update html table in an ASP.NET application in realtime?
我有一个连接到 Redis 订阅的网络服务,如下所示:
using (RedisClient rc = new RedisClient("Publisher IP", 6379))
{
using (RedisSubscription rs = new RedisSubscription(rc))
{
rs.OnMessage = (channel, msg) =>
{
//msg is an object in json format to be displayed in html table
};
rs.SubscribeToChannels("Channel Name");
}
}
到目前为止我尝试过的事情:
- 我无法使用 AJAX 调用来获取数据,因为
执行不会退出
rs.OnMessage
代码块。
- 它在那里循环运行,直到订阅者与发布者断开连接。我试图将
msg
值存储在 Session
中,然后在网页中调用该值。然而,会话值似乎没有更新。
我也愿意尝试其他技术。由于我刚刚开始这个项目,所以我也可以从头开始。对我如何做到这一点有什么建议吗?
对于可能无意中发现这一点的任何人。我最终设法通过将订阅中的最新值存储在 Redis 键值对 (Hset) 中,然后 运行 一个 AJAX 调用来循环检索该值来做到这一点。如果您想要某种缓存或者如果您想要执行从发布者接收到的某些操作,也可以使用列表。但是,管理列表以免产生大量开销是一项棘手的任务。
我有一个连接到 Redis 订阅的网络服务,如下所示:
using (RedisClient rc = new RedisClient("Publisher IP", 6379))
{
using (RedisSubscription rs = new RedisSubscription(rc))
{
rs.OnMessage = (channel, msg) =>
{
//msg is an object in json format to be displayed in html table
};
rs.SubscribeToChannels("Channel Name");
}
}
到目前为止我尝试过的事情:
- 我无法使用 AJAX 调用来获取数据,因为
执行不会退出
rs.OnMessage
代码块。 - 它在那里循环运行,直到订阅者与发布者断开连接。我试图将
msg
值存储在Session
中,然后在网页中调用该值。然而,会话值似乎没有更新。
我也愿意尝试其他技术。由于我刚刚开始这个项目,所以我也可以从头开始。对我如何做到这一点有什么建议吗?
对于可能无意中发现这一点的任何人。我最终设法通过将订阅中的最新值存储在 Redis 键值对 (Hset) 中,然后 运行 一个 AJAX 调用来循环检索该值来做到这一点。如果您想要某种缓存或者如果您想要执行从发布者接收到的某些操作,也可以使用列表。但是,管理列表以免产生大量开销是一项棘手的任务。