Я работаю над приложением, которое должно уведомить пользователя о получении нового уведомления. Приложение будет размещено на Azure и будет .NET MVC 3 (вероятно, не важно, но FYI). Я такжеSignalR push-уведомления всем экземплярам браузера одного пользователя, прошедшего проверку подлинности
Уведомления сохраняются в MSSQL db (2008) и имеют поле IsRead
. Уведомления генерируются из различных действий пользователя и сервера. На основе пользовательских настроек некоторые уведомления будут созданы с помощью IsRead == false
.
У меня есть 2 различных сценарии, которые я чувствую, что SignalR будет совершенным в обращении, мне просто нужно немного руководства:
- Пользователя имеет несколько открытых окон просмотр сайта и новую строку уведомлений добавляются, присвоенным для этого пользователя, с
IsRead == true
- Я хотел бы все экземпляры браузера конкретного пользователя, чтобы иметь определенную Js функции под названием, чтобы показать уведомление всплывал
- пользователя имеет несколько ветров ows open и нажимает на уведомление.
- Я хотел бы, чтобы все экземпляры браузера конкретного пользователя имели функцию js, вызываемую для удаления уведомления. (Только конкретный экземпляр браузера, который обрабатывается щелчок будет также выполнять функцию JS, чтобы показать подробности уведомления)
То, что я пытался
Для первого сценария, я думаю, что те же действия, которые заставляют уведомление записываться в базу данных, будут обязаны уведомлять все экземпляры браузера пользователя.
Второй сценарий будет похож на то, что нажав на всплывающее окно, конечная точка сервера будет вызываться через Ajax, и эта конечная точка обновит db, чтобы пометить уведомление как прочитанное, а затем уведомить все экземпляры браузера другого пользователя ,
Если есть способ отслеживать клиентов SignalR на основе имени пользователя ASP.NET Forms Authentication, то я думаю, что это будет работать при решении проблем в обоих сценариях.
TL; DR
Моя главная проблема в том, что я не знаю, как сигнализировать все экземпляры браузера одного конкретного пользователя с помощью SignalR. Я думал о создании группы на основе имени пользователя аутентификации ASP.NET. Будет ли это работать? Есть ли более простой способ, который встроен в SignalR, который обрабатывает это?
Благодарим вас за комментарий. Я попробую и посмотрю, как это работает! –
Это сработало! Благодаря :) –