Groups.Add不会立即将调用者添加到组中

时间:2014-05-05 19:07:31

标签: c# signalr signalr-hub

我有以下代码:

public void JoinGroup(string groupName, string userFullName)
{
    Groups.Add(Context.ConnectionId, groupName);
    // Send data back to everyone including the caller   
    Clients.Group(groupName).dataChanged(...);
}

我希望Clients.Group(groupName)能够回复刚刚加入该群组的客户,但事实并非如此。但是Clients.Caller...会正确调用刚加入该组的客户端。

问题

为什么不是Clients.Group(groupName)包括刚加入群组的来电者?

1 个答案:

答案 0 :(得分:3)

Groups.Add是异步的,因此如果要以相同的方法(as stated in the documentation)使用该组,则需要等待它:

public async Task JoinGroup(string groupName, string userFullName)
{
    await Groups.Add(Context.ConnectionId, groupName);
    // Send data back to everyone including the caller   
    Clients.Group(groupName).dataChanged(...);
}