SignalR e Grupos de Junção

Eu estou olhando para SignalR para um projeto que estou trabalhando, e parece ser exatamente o que eu quero. No entanto, um pouco que eu ainda estou um pouco perplexo com os grupos e se unindo.

Vou tentar descrever o contexto da implementação primeiro. Assim, um usuário dentro de um sistema existente desejará realizar uma reunião sobre um determinado tópico e, em seguida, criar uma sala com um determinado nome / identificador, ele convidará outras pessoas para ele e, em seguida, basicamente será como uma sala de bate-papo particular.

Então, os passos que eu suponho seriam como o host, criar uma sala e se juntar a ela, e então enviar convites que exigiriam que os usuários clicassem, o que de alguma forma informaria ao servidor em qual sala ingressar.

Agora eu vejo na documentação que existe um método Join and Disconnect que você pode conectar para colocar alguém em um grupo, no entanto, parece que o Join não tem nenhum contexto associado a ele além da string de consulta, então estou um pouco confuso quanto ao que desencadeia um Join, como seria de esperar, seria um método manualmente acionado no cliente passando por cima de algum objeto dando contexto sobre em qual sala colocá-los, pois você poderia ter centenas de salas privadas.

Então, como você dá ao método Join algum contexto, e o desconecta, para que eles saibam em qual sala você está solicitando a junção, como se não fosse acionado manualmente, como você pode definir a string de consulta, e se é manualmente acionado? você não envia um objeto personalizado. ou seja,

public Task Join()
{
    var groupName = Context.QueryString["some-room-identifier"];
    return Groups.Add(Context.ConnectionId, groupName);
}

vs

public Task Join(string groupName)
{
    return Groups.Add(Context.ConnectionId, groupName);
}

Então, estou faltando alguma coisa ou há alguma maneira de dar contexto a um usuário participante para colocá-lo no lugar certo na primeira vez?

questionAnswers(1)

yourAnswerToTheQuestion