Я пытался в течение нескольких дней и боролся с лучшими практиками для этого - есть идеи?
Пример надуманного личного сообщения:
- Несколько пользователей вошли в Blazor server
- Сервер подписывается на шину событий / очередь сообщений для получения NewMessageEvent
- Обновляется только пользователь, который является предполагаемым получателем.
Я могу создать singleton для подписки на очередь сообщений. Затем я могу использовать синглтон, который я вводю в требуемый компонент blazor, чтобы добавить сообщение в список и выдать событие stateHasChanged.
Это обновит все подключенные клиенты (не идеально, служба, введенная в компоненты, должна
Варианты на данный момент:
- Я мог проверить получателя сообщения внутри компонента blazor, но мне кажется, что это не то место
- Подпишитесь на очередь один раз на канал (очередь по-прежнему содержит все сообщения)
То, что я надеялся сделать, возможно, было создать локатор службы на основе идентификатора схемы и подключенного пользователя с помощью обработчика схемы , и вызовите такую функцию, как: NewMessageReceivedFor (userId), если она найдет согласованную схему, затем вызовите сервисную функцию с заданной областью. конструктор) какой-либо формой GetRequiredService, но могу ли я получить эту службу с ограниченной областью действия, указав идентификатор схемы?
Сейчас я чувствую, что я либо на 90% там, либо в неправильном лесу, не говоря уже о том, что поднялся не на то дерево.