Vla*_*irs 1 c# asp.net publish-subscribe signalr asp.net-web-api
我有一些信息需要实时显示给用户。在我重复调用服务器以获取新数据之前。
现在我想用 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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5517 次 |
| 最近记录: |