Как управлять группами в ядре SignalR? (присоединение / уход от всех) - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть несколько вопросов о SignalR.

  1. Сценарий приложения: пользователь может присоединиться / покинуть несколько групп (NxN). Но эти группы могут быть изменены с новым запросом. Итак, как удалить пользователя из всех присоединившихся групп и добавить его в новый список групп? (Например: в первом запросе я присоединяюсь к группам A, B, C, а во втором запросе я хочу быть только в группе S X, Z - я больше не слушаю группы a, b, c).
  2. Как проверить имя группы, если оно уже существует?
  3. Как удалить группу, если в ней нет пользователей / участников? (сборщик мусора)

Надеюсь, кто-то мне здесь поможет! (Ядро Signalr: 2,2)

1 Ответ

0 голосов
/ 03 февраля 2020

SignalR не предоставляет вам список пользователей в группах, количество групп и их имена. Таким образом, логика c, которую вам нужно реализовать, это создать, например, Dictionary, чтобы вы могли добавить туда имя вашей группы и пользователей, которые связаны с этой группой. Поэтому, когда приходит запрос на изменение пользователя из группы A в группу B, вы можете выполнить:

  • Поиск групп пользователей.
  • Удаление пользователя из группы.
  • Создайте новую группу и добавьте ее в свой словарь.
  • Добавьте пользователя в новую группу.

Я считаю, что это хороший подход, если у вас есть один SignalR app / host, потому что, если у вас будет много экземпляров вашего приложения signalR, вы не сможете получить доступ к Dictionary, чтобы узнать, есть ли пользователь в какой-то группе в каком-то другом экземпляре.

...