0

我可以看到创建组的方式为:

public Task CreateGroup(string group)
{
    return Groups.Add(Context.ConnectionId, group);
}

即使我拥有IdsChannel唯一连接 ID 是context.ConnectionId.
(用Task语法编辑)

如果我有一组组名,我希望能够在它的基础上创建组。就像是 ...

public void CreateGroups(string[] groups)
{
    Groups.AddRange(Context.ConnectionId, groups);
}
4

1 回答 1

1

你可以这样做:

public async Task CreateGroup(string[] groups)
{
    foreach (var group in groups)
    {
        await Groups.Add(Context.ConnectionId, group);
    }
}

但是,将客户端添加到许多组时需要注意。在客户端和服务器之间发送组成员身份的方式是 groupsToken,它是连接所属组的加密和编码列表。一旦一个连接属于许多组,groupsToken 就会变得很长。由于 groupsToken 是在某些操作的查询字符串中发送的(最明显的是重新连接,或者在每个轮询请求的 longPolling 的情况下),如果它变得太长,请求可能会由于 url 太长而失败。

于 2016-09-21T17:00:28.560 回答