Я работаю над приложением, которое должно уведомлять пользователя, когда он получает новое уведомление. Приложение будет размещено в Azure и будет представлять собой.NET MVC 3 (, вероятно, не важно, но для справки). Я также
Уведомления сохраняются в базе данных MSSQL (2008 )и имеют поле IsRead
. Уведомления генерируются из различных действий пользователя и сервера. В зависимости от предпочтений пользователя некоторые уведомления будут создаваться с помощью IsRead == false
.
У меня есть 2 разных сценария, с которыми, как мне кажется, SignalR будет идеально справляться, мне просто нужно небольшое руководство.:
IsRead == true
Для первого сценария, я думаю, что то же действие, которое быть записан в базу данных, будет нести ответственность за уведомление всех экземпляров браузера пользователя.
Второй сценарий будет аналогичен тому, что при нажатии на всплывающее окно конечная точка сервера будет вызываться через Ajax, и эта конечная точка будет обновлять базу данных, чтобы пометить уведомление как прочитанное, а затем уведомлять все другие экземпляры браузера пользователя.
Если есть способ отслеживать клиентов SignalR на основе имени пользователя для проверки подлинности с помощью форм ASP.NET, то я думаю, что это поможет решить проблемы в обоих сценариях.
Моя основная проблема заключается в том, что я не знаю, как сигнализировать обо всех экземплярах браузера одного конкретного пользователя с помощью SignalR. Я думал о создании группы на основе имени пользователя ASP.NET Forms Authentication. Будет ли это работать? Есть ли более простой способ, встроенный в SignalR, который справляется с этим?