SignalR i grupy łączenia

Patrzę na SignalR dla projektu, nad którym pracuję, i wygląda na to, że dokładnie tego chcę. Jednak trochę, że wciąż jestem nieco zaskoczony, to grupy i dołączanie.

Najpierw postaram się opisać kontekst wdrożenia. Tak więc użytkownik w istniejącym systemie będzie chciał zorganizować spotkanie na dany temat, a następnie utworzy pokój o podanej nazwie / identyfikatorze, a następnie zaprosi do niego inne osoby, a następnie będzie to zasadniczo prywatny pokój rozmów.

Tak więc kroki, które zakładam, będą jako host, utworzą pokój i do niego dołączą, a następnie wyślę zaproszenia, które wymagałyby kliknięcia przez użytkowników, co w jakiś sposób powiedziałoby serwerowi, do którego pokoju dołączyć.

Teraz widzę w dokumentacji, że istnieje metoda Join and Disconnect, którą można podłączyć, aby umieścić kogoś w grupie, jednak wydaje się, że Join nie ma powiązanego z nim kontekstu innego niż ciąg zapytania, więc jestem trochę zdezorientowany jeśli chodzi o to, co uruchamia Join, jak oczekiwałbym, że będzie to ręcznie uruchamiana metoda na kliencie, przechodząca przez jakiś obiekt dający kontekst co do tego, w którym pokoju je umieścić, ponieważ można mieć setki prywatnych pokoi.

Jak więc nadać kontekstowi metodę Join i ją rozłączyć, aby wiedzieli, do którego pokoju chcesz dołączyć, tak jakby nie był uruchamiany ręcznie, w jaki sposób można ustawić ciąg zapytania, a jeśli jest uruchamiany ręcznie, dlaczego może nie wysyłasz niestandardowego obiektu. to znaczy

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);
}

Czy więc czegoś mi brakuje lub czy jest jakiś sposób, aby dać kontekst łączącemu się użytkownikowi, aby umieścić go we właściwym miejscu za pierwszym razem?