【发布时间】:2021-04-10 15:23:05
【问题描述】:
我正在尝试对一个大表的 signalR 广播进行分页,以便每个订阅的组都有一个用户可以看到的“当前页面”。我希望页码的状态存在于 Hub 的 Context.Items 字典中。
在我的集线器中,我这样设置页码:
public class OnlineBotsHub : Hub
{
public async Task JoinGroup(string num)
{
await Groups.AddToGroupAsync(Context.ConnectionId, num);
await Clients.Group(num).SendAsync("AddedToGroup", "added to group number: " + num);
}
public void Pagination(string pageNum)
{
Context.Items.Add("page", pageNum);
}
}
目前我将集线器注入到单例服务中,如下所示:
private readonly IHubContext<OnlineBotsHub> _hub;
public OnlineBotService(IHubContext<OnlineBotsHub> hub)
{
_hub = hub;
}
但我似乎无法通过此引用访问 Hub 的 Context.Items 属性。 我想在这样的单例服务中使用这个值:
Context.Items.TryGetValue("page", out object currentPage);
var returnList = PagedList<T>.ToPagedList(addBots.OrderBy(x => x.RowId), currentPage, 100);
我能否以某种方式从其他类访问 Hub 的 Context.Items 字典?
【问题讨论】:
标签: c# asp.net-core .net-core signalr