SignalR und Joining Groups

Ich suche bei SignalR nach einem Projekt, an dem ich arbeite, und es scheint genau das zu sein, was ich will. Ein bisschen, von dem ich immer noch ein bisschen verblüfft bin, sind die Gruppen und der Beitritt.

Ich werde zunächst versuchen, den Kontext der Implementierung zu beschreiben. Ein Benutzer in einem vorhandenen System möchte also eine Besprechung zu einem bestimmten Thema abhalten und erstellt dann einen Raum mit einem bestimmten Namen / einer bestimmten Kennung. Anschließend lädt er andere Benutzer dazu ein und es wird im Grunde genommen wie ein privater Chatraum.

Ich gehe also davon aus, dass Sie als Host einen Raum erstellen und ihm beitreten und dann Einladungen senden, bei denen Benutzer klicken müssen, um dem Server mitzuteilen, in welchen Raum sie eintreten sollen.

Jetzt geht aus der Dokumentation hervor, dass es eine Join- und Disconnect-Methode gibt, mit der Sie jemanden in eine Gruppe einbinden können. Es scheint jedoch, dass dem Join kein anderer Kontext als die Abfragezeichenfolge zugeordnet ist, sodass ich etwas verwirrt bin Was einen Join auslöst, ist, wie zu erwarten, eine manuell ausgelöste Methode auf dem Client, die ein Objekt übergibt und den Kontext angibt, in welchem ​​Raum sie abgelegt werden sollen, da Sie Hunderte von privaten Räumen haben könnten.

Wie geben Sie der Join-Methode einen Kontext und der Disconnect-Methode einen Kontext, damit sie weiß, in welchem ​​Raum Sie beitreten möchten, als ob sie nicht manuell ausgelöst wird. Wie können Sie die Abfragezeichenfolge festlegen und wenn sie manuell ausgelöst wird, warum? Sie senden kein benutzerdefiniertes Objekt. d.h.

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

Vermisse ich also etwas oder gibt es eine Möglichkeit, einem beitretenden Benutzer einen Kontext zu geben, um ihn beim ersten Mal an die richtige Stelle zu bringen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage