SignalR и присоединяющиеся группы

Я смотрю на SignalR для проекта, над которым я работаю, и, похоже, это именно то, что я хочу. Однако один момент, который меня все еще немного сбивает с толку, - это группы и объединение.

Сначала я попытаюсь описать контекст реализации. Таким образом, пользователь в существующей системе захочет провести совещание по заданной теме, а затем создаст комнату с заданным именем / идентификатором, затем он пригласит в нее других, и тогда она будет в основном похожа на приватную чат-комнату.

Таким образом, я предполагаю, что в качестве хоста создадим комнату и присоединимся к ней, а затем разошлем приглашения, которые потребуют от пользователей щелчка, который каким-то образом сообщит серверу, в какую комнату присоединиться.

Теперь я вижу из документации, что есть метод Join и Disconnect, который вы можете подключить, чтобы поместить кого-то в группу, однако кажется, что у Join нет никакого контекста, связанного с ним, кроме строки запроса, поэтому я немного запутался Что касается того, что вызывает соединение, то, как я и ожидал, это будет вызванный вручную метод на клиенте, передающий некоторый объект, задающий контекст относительно того, в какую комнату их помещать, поскольку у вас может быть сотни частных комнат.

Итак, как вы предоставляете методу Join некоторый контекст, а другой - разъединение, чтобы они знали, к какой комнате вы запрашиваете присоединение, как будто он не запускается вручную, как вы можете установить строку запроса, и если он запускается вручную, почему может Вы не отправляете через пользовательский объект. т.е.

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

против

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

Так что я что-то упустил или есть какой-то способ дать контекст присоединяющемуся пользователю, чтобы он впервые оказался в нужном месте?

Ответы на вопрос(1)

Ваш ответ на вопрос