Как отправить имя группы при подключении в SignalR Persisted Connection?

У меня есть разные группы пользователей, которым мне нужно отправить данные. Я мог бы использовать здесь концепцию концентраторов, но единственная клиентская библиотека SignalR для Android "SignalA" https://github.com/erizet/SignalA не имеет реализации для концентраторов, поэтому мне пришлось использовать постоянные подключения и его групповую концепцию. Теперь я вижу этот метод OnConnected на сайте документации SignalR.

protected override Task OnConnected(IRequest request, string connectionId)
{
    return Groups.Add(connectionId, "foo");
}

Я хочу, чтобы пользователь мог присоединяться к разным группам, поэтому, когда он подключается, он будет передавать имя группы, к которой он хочет быть добавлен. Как я могу передать имя группы на стороне клиента, а также получить его указанным выше методом вместо использования жестко закодированного «foo»?

Я также был бы очень рад, если бы кто-нибудь мог указать мне клиентскую библиотеку SignalR java, в которой есть реализация концентраторов, поскольку я не смог найти ни одной.

Спасибо


person Bitsian    schedule 22.02.2013    source источник


Ответы (2)


У вас есть 2 варианта:

  1. Передайте параметры строки запроса (если клиент Java поддерживает это) как часть информации о соединении. Таким образом, вы можете передать список групп через строку запроса для присоединения. Если вы сделаете это, вы можете использовать request.QueryString для доступа к строке запроса и выполнения любой необходимой вам обработки.
  2. После подключения вы можете отправить сообщение на сервер и обработать OnReceived и передать список групп.

Любой из них работает.

person davidfowl    schedule 22.02.2013
comment
Большое спасибо! Попробую первый вариант. - person Bitsian; 22.02.2013
comment
Кстати, вы случайно не знаете какую-нибудь стабильно работающую клиентскую библиотеку Java для SignalR? Отчаянно нуждается в этом. - person Bitsian; 22.02.2013
comment
Нет, я даже не знал об этом. - person davidfowl; 23.02.2013
comment
@davidfowl Спасибо, но первый вариант не работает в ASP.NET MVC. Есть идеи? - person ; 24.07.2019

Я знаю, что это старый вопрос, но я думаю, стоит упомянуть, что SignalA теперь поддерживает концентраторы.

person Erik Z    schedule 19.09.2013