gpt4 book ai didi

c# - 使用发布-订阅模式通过 SignalR 向客户端发送更新

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:17 26 4
gpt4 key购买 nike

我有一些信息需要实时显示给用户。在我重复调用服务器以获取新数据之前。

现在我正在考虑用 SignalR 替换这些重复调用。一般的想法是在客户端订阅中心,当新条目添加到数据库时,中心将向所有客户端发送更新,但是我坚持使用该结构的一般设计。

所以我有我的 WebAPI 项目和服务层。在添加新条目时的服务中,我将引发一个事件,并在集线器内部捕获该事件并将更新发送给所有客户端。

用 SignalR 实现这些事情的方式是否正确?鉴于我使用的是 asp.net WebAPI 和 SimpleInjector,有人可以解释我如何实现它吗。

最佳答案

带有 signalR 的 PubSub 模式可以使用组在本地实现。以群名为主题,用户可以通过加入\离开群来订阅\取消订阅。

这是代码片段。它很简单,应该可以很好地横向扩展。

[HubName("PubSub")]
public class PubSubHub : Hub {
public void Publish(string topic, object data) {
Clients.Group(topic).onNewMsg(topic, data);
}
public async Task Subscribe(string topic) {
await Groups.Add(Context.ConnectionId, topic);
Clients.Client(Context.ConnectionId).onSubscribed(topic);
}

public async Task Unsubscribe(string topic) {
await Groups.Remove(Context.ConnectionId, topic);
Clients.Client(Context.ConnectionId).onUnsubscribed(topic);
}
}

关于c# - 使用发布-订阅模式通过 SignalR 向客户端发送更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107252/

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