Отображение пользователей SignalR на соединения в группах

1

Как я могу добавить/удалить пользователя из группы с помощью userId

Groups.Add(userid,"groupName")

которые я использую в своей базе данных вместо использования connectionId

Groups.Add(connectionId,"groupName")

Я создал сопоставление, как здесь ! используя метод "Идентификатор пользователя", и я могу это сделать

Clients.Users(userId).sendMessage("asa")

но

Groups.Add(userid,"groupName")

это не работает. Итак, как я могу создать Group.Add(userid, "groupName")? Есть ли специальное сопоставление, о котором я не знаю, или я использую это неправильно?

  • 0
    При каких обстоятельствах вы пытаетесь присоединить пользователя к группе, но у вас нет доступа к идентификатору connectionId ?
Теги:
asp.net-identity
signalr

1 ответ

1
Лучший ответ

Невозможно добавить userId в группу. Вы должны использовать только connectionId. В зависимости от ваших потребностей вы можете использовать один из способов, описанных в приведенной ссылке.

Например, вы можете добавить каждое соединение к группе, названной userId:

Groups.Add(Context.ConnectionId, userId);

А затем вы можете отправлять сообщения указанному пользователю:

Clients.Group(userId).sendMessage("asa");

Другой вариант использования может включать определение userId в методе OnConnected а затем добавление пользователя в нужную группу по его connectionId:

var groupName = GetGroupNameByUserId(userId);
Groups.Add(Context.ConnectionId, groupName);
...
Clients.Group(groupName).sendMessage("asa");
  • 0
    Я пытаюсь создать группы, подобные тем, которые есть в Skype, поэтому, когда я удаляю пользователя из группы, я хочу сообщить ему об этом в режиме реального времени, а также удалить его из группы, но проблема в том, что я не знаю его connectionId вот почему было бы замечательно, если бы существовало отображение между userId и connectionId, встроенное в SignalR, которое также работало бы для групп. Будем надеяться, что это будет в SignalR 3. В любом случае, спасибо @Norfolc.
  • 0
    @viktorfilim, Вы можете использовать подход для хранения соединений в БД.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню