Есть ли способ правильно отправлять сообщения всем пользователям по уникальным руководствам в signalR? - PullRequest
0 голосов
/ 21 июня 2019

SignalR поставил меня в тупик!У меня есть список растущих предметов ... который после обновления в базе данных, я хочу, чтобы некоторые пользователи, которые "заботятся" об этом, знали.

Меня не волнует, онлайн они или нет.Я просто хочу вызвать сообщение для всех пользователей, которые хотят знать об изменениях.Если они в сети, то они это видят.Если это не так, то позже он просто появляется в другом наборе уведомлений, которые они видят после входа в систему.

Все, что у меня есть об этих пользователях, это их уникальные направляющие (первичные ключи в их таблице), а затем информация, такие как: имя и адрес электронной почты.

Есть ли способ использовать Clients.Users(list of users) в этом сценарии, изменяя информацию, которая у меня уже есть?

Clients.All.SendAsync работает отлично.Мне просто нужно разобраться с этой ситуацией.

Я надеюсь, что это достаточно ясно, чтобы заставить меня идти по правильному пути!

Я использую AspNetCore.

Пример информации, с которой мне нужно работать:

User1

UserGuid - b7c103d0-78c0-43de-aaa0-1a07cb0c8e46

FirstName - John

LastName - Doe

Email - john.doe@mail.com



User2

UserGuid - cd75274b-19bc-4b8b-8eca-89947959ab03

FirstName - Jane

LastName - Doe

Email - jane.doe@mail.com




User3

UserGuid - df8ede1b-dada-4eec-bc6c-f32b70bd8bd9

FirstName - Bob

LastName - Doe

Email - bob.doe@mail.com

Я хочу отправлять сообщения Пользователю1 и Пользователю3.Как определить пользовательскую информацию, необходимую для того, чтобы signalR инициировал только сообщение для них?Я не хочу отправлять сообщения всем

1 Ответ

0 голосов
/ 24 июня 2019

У вас есть пара вопросов, которые задаются на основе некоторых других знаний.

  1. Некоторым пользователям небезразличны x, y или z.- Вам нужно связать своих пользователей с тем, что им небезразлично, например, в таблице базы данных.Как вы узнаете, что будет зависеть от того, как вы создаете / настраиваете пользователей и как они знают о x, y или z.

  2. Как отправлять обновления о x, y илиz только пользователям, которые заботятся о них.- Вы можете использовать группы.Когда пользователь входит в систему, получите то, что ему нужно, и добавьте его в эту группу.Когда они выходят из системы, они удаляются из группы.Вы можете отправить им, используя Client.Groups ("x"). Method (message), где "x" - это имя группы.Это будет отправлено каждому члену этой группы.

  3. Если они не в сети, они появятся позже.- Этот требует хранения ваших сообщений и группы, к которой они должны быть назначены в базе данных.Это становится сложнее, потому что теперь вам также придется отслеживать, видел ли пользователь 1, 2 или 3 конкретное сообщение или нет.Возможно, вам понадобится провести дополнительное исследование по этой части.Но у Google и Stack есть что предложить.

...