я должен был сделать что-то подобное, и это то, что я сделал:
1) Определить типы уведомлений на основе ролей пользователей. Каждый тип уведомления имел список конкретных получателей. Таким образом, я знал, был ли создан тип уведомления, я должен был уведомить некоторых пользователей.
2) Я отправляю уведомления по имени, а не по идентификатору соединения.
3) Уведомления могут быть отправлены с клиентского кода (JS) или из внутреннего кода (C#). В JS у вас есть такие функции, как «другие», которые действительно удобны. В C# у вас тоже есть «другие», но это работает только с идентификаторами подключения.
4) Я также уведомляю об изменениях в данных, поэтому, если кто-то меняет порядок 1, я уведомляю диспетчера и любого другого пользователя, у которого открыт заказ (в этом случае я отправляю уведомление супервизору и всем другие агенты и на основе заказа, который открыл каждый пользователь, я решаю, обрабатываю ли я сообщение msg или нет).
Надеюсь, это поможет!
Это зависит от вас, насколько хорошо вы можете управлять своими пользователями. В одном из моих последних проектов я использовал браузер SessionID для идентификации своих пользователей и сохранял их в статическом списке в качестве онлайн-пользователей. Затем, если пользователь хочет отправить уведомление другому пользователю, я использую этот статический список для идентификации получателя. – Prabhat