SignalR не будет работать должным образом внутри Windows сервиса по сравнению с версией клиента - PullRequest
0 голосов
/ 18 февраля 2020

Цель: я хочу отправлять уведомления своим клиентам об определенных операциях, например, когда они вошли в систему. Чтобы сказать более подробно, я хочу показать уведомление работодателю, в котором говорится, что {{x}} сотрудник только что вошел в систему и четко все коды авторизации готовы и работают.

Текущее состояние: я открыл еще один веб-проект asp. net mvc (скажем, проект сигнала) в своих решениях и в проекте внутреннего сигнала. Я написал свой сигнализатор. коды, которые отправляют уведомления пользователям в соответствии с их полномочиями. (ClassName: Hub)

Мой рабочий процесс клиента / сигнализатора

  1. Список item
  2. пользователь входит в систему, я проверяю его / ее полномочия.
  3. Для ее / его полномочий я назначаю их в группы
  4. и отправляю уведомления работодателям (которые у них есть они владеют группой)

В этом состоянии все хорошо и работает. Но я хочу преобразовать этот проект сигнала в windows службу. Так что я создал ее.

Проблема: Windows Служба работает, но уведомления, которые должны отправляться определенным группам, не будут go (в моем случае работодатели не увидят никаких уведомлений).

Анализ: поэтому я просматриваю свои коды и отлаживаю с помощью библиотеки log 4net и проверяю журнал событий windows

Проверенные / отлаженные / подтвержденные шаги

  1. Создание групп работ
  2. Вход в систему Заказчик, назначающий работы групп
  3. Отправка уведомления группе работодателей НЕ будет работать (код ниже)

    Clients.Group("Employers", Context.ConnectionId).Send("Some Context");

Поэтому я создал метод, который отправляет уведомление ВСЕМ вошедшим в систему пользователям, и, как ни странно, работает все мои пользователи, включая работодателей и сотрудников, видят уведомления.

Вкратце, используя сигнализатор из проекта asp. net mvc, я могу отправлять уведомления своим пользователям, которые в определенной группе c но при использовании услуги windows я могу отправить уведомление всем моим пользователям, но я не могу отправить уведомление своим пользователям, которые в определенной группе c.

Я могу поделиться кодом, если это необходимо? Любые идеи, мысли, идеи приветствуются.

1 Ответ

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

Revising -

В методе вы устанавливаете контекст концентратора?

IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<Hub>();

(do some stuff)

hubContext.Clients.Group("Employers").Send("Some Context");

Если вы можете показать какой-нибудь код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...