【问题标题】:How to remove all clients from a SignalR group?如何从 SignalR 组中删除所有客户端?
【发布时间】:2019-06-24 15:24:15
【问题描述】:

所以在 SignalR 中,您可以使用将客户端添加到组中

Groups.Add(connectionId, roomName)

您可以使用

从组中删除客户端
Groups.Remove(connectionId, roomName);

但是我怎样才能清空一个组 - 换句话说,只是从该组中删除所有客户端?

更新:这不是this 的重复,因为我在问如何从ONE 组 中删除所有客户。我不是要求从所有组中删除一个客户端。

【问题讨论】:

标签: c# signalr


【解决方案1】:

SignalR 没有公开任何方法来做到这一点。它也不会公开活动连接列表。因此,要实现您想要的,您必须通过实现 OnConnectedAsync 来存储所有连接 ID,然后在循环中将它们从组中删除。

【讨论】:

    【解决方案2】:

    我也没有找到任何 API 函数,但 Groups 是 Dictionary 类型(据我记得),所以你可以使用 Clear() 函数。如果不看什么接口|类型组实现并使用它的功能,如 Clear()

    【讨论】:

    • GroupsIGroupManager 类型,它只提供AddRemove AFAIK。
    • @Mason 那么我想唯一的方法是一个一个删除所有记录:(。因为 Aspram 共享文档证明自 2011 年以来这个问题没有解决哈哈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    相关资源
    最近更新 更多