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?