Основная цель состоит в том, чтобы добавить к сайту возможность отправлять веб-уведомления, чтобы вывести системное уведомление, чтобы предупредить пользователя, используя API-интерфейс Html5 Push и сервис-работников. Не использовать SignalR, который может запускать клиентские скрипты во время открытия сайта. Также должна быть возможность отправлять уведомления, если сайт закрыт, как упоминалось здесь - это возможно.
Здесь хорошая статья о Push API и при условии хорошего example Но он использует NodeJS в качестве сервера и web-push компонент для отправки запросов в службы уведомлений.
Невозможно найти примеры .NET. Я думаю об этих двух обходных решениях.
Во-первых, написать все с нуля на основе статьи Push API отметить о сервере:
Когда вы отправляете push-сообщение без данных, вы просто отправляете его на URL-адрес конечной точки, используя запрос HTTP POST. Однако, когда push-сообщение содержит данные, вам необходимо зашифровать его, что является довольно сложным процессом.
Во-вторых, следует использовать AspNetCore.NodeServices(статья об этом) для выполнения node.js script file
Есть ли еще решения? Может быть, существует готовое решение для этого?
После изучения темы
3 случая:
- HTTP + старые браузеры + IE все версии - использование SignalR + render Notification с помощью html + js
- HTTP + Современные браузеры (Chrome, Firefox, Safary, Opera?, Edge) с поддержкой API уведомлений. - Используйте SignalR и запускайте собственное уведомление обозревателя с помощью js, используя
new Notification('Message')
- HTTPS + Chrome (Mobile) с поддержкой Push API для запуска собственного уведомления для закрытого сайта с использованием сервис-работников. Мобильная версия Chrome может создавать уведомления только с помощью службы-службы.
Это стало сложно. Что не так?
Возможные решения:
В 1 и 2 случаях найдено этот репозиторий. Подумайте, что это хорошее решение для интерфейса с хорошей поддержкой резервного копирования. За 3 случая все еще не знаю, что делать.
Текущее решение. Добавлено: 2017-11-22
- Поддержка автономных клиентов без подписки
- Нет мобильной поддержки
- Для Chrome v62 + перемещение всего проекта на https - ссылка
- Использование SignalR (0.2.0) для отправки push в онлайн-клиенты
- Используя pnotify v3 +, чтобы показать собственные уведомления desctop или html.
- Ожидание pnotify v4.0.0 (автор promises поддержка Chrome. Issue)
- Ожидание .NET Core 2.1 с SignalR 1.0 для перезаписи всего проекта на него.