Основная цель - добавить на сайт возможность отправлять веб-уведомления, чтобы вывести системное уведомление, чтобы предупредить пользователя, используя Html5 Push API и сервис-работников. Не использовать SignalR, который может запускать клиентские скрипты во время открытия сайта. Также должна быть возможность отправлять уведомление, если сайт закрыт, как упомянуто here - это возможно.Asp Net Core Web Push Уведомления
Here это хорошая статья о Push API и при условии хорошей example Но он использует NodeJS в качестве компонента сервера и web-push отправлять запросы к службам уведомления.
Невозможно найти .NET-примеры. Я думаю об этих двух обходных решениях.
Во-первых, чтобы написать все с нуля на основе Push API статьи note о сервере:
При отправке нажимной сообщение без данных, вы просто отправить его в URL конечной точки, используя запрос HTTP POST. Однако, когда push-сообщение содержит данные, вам необходимо зашифровать его, что является довольно сложным процессом.
Во-вторых, это использование AspNetCore.NodeServices (article об этом), чтобы выполнить node.js файл сценария
Есть ли еще решения? Может быть, существует готовое решение для этого?
После предмета исследуете
3 случая:
- HTTP + старые браузеры + IE все версии - Использование SignalR + рендер Оповещение с помощью HTML + JS
- HTTP + Современные браузеры (Chrome, Firefox, Safary, Opera ?, Edge) с поддержкой API уведомлений. - Использовать SignalR и запускать собственное уведомление браузера с помощью js, используя
new Notification('Message')
- HTTPS + Chrome (Mobile) с поддержкой Push API для запуска собственного уведомления для закрытого сайта с использованием сервис-работников. Мобильная версия Chrome может создавать уведомления только с помощью сервис-работника.
Это стало сложным. Что не так?
Возможные решения:
Для 1 и 2 случаях найдено this хранилище. Подумайте, что это хорошее решение для интерфейса с хорошей поддержкой резервного копирования. Для 3-х случаев все еще не знаю, что делать.
Текущее решение. Добавлено: 2017-11-22
- Нет оффлайн клиенты уведомления не поддерживает
- Нет поддержки мобильной
- Для Chrome V62 + перемещения всего проекта к HTTPS - link
- Использованием SignalR (0.2.0) для отправки push на онлайн-клиентов
- Использование pnotify v3 + для отображения уведомлений о родном десктопе или html.
- Ожидание pnotify V4.0.0 (автор обещает хрому поддержки мобильных устройств. Issue)
- Ожидание .NET Ядра 2.1 с SignalR 1.0 переписать весь проект к нему.
Какова ваша причина неиспользования SignalR - он будет иметь возможность уведомить своего клиента от внутреннего интерфейса, где вы затем реагировать на обратный вызов с API HTML5 Push. –
Клиент хочет видеть уведомления обозревателя на мобильных устройствах и на рабочем столе из браузера, которые генерируются при вызове ServiceWorkerRegistration.showNotification из сценария рабочего стола. Таким образом, SignallR может вызывать его, тогда сайт в настоящее время открыт, но если он закрыт, то требуется Notification API. – aleha
Вы можете использовать [Pushpad] (https://pushpad.xyz/docs/pushpad_pro_getting_started) и его [REST API] (https://pushpad.xyz/docs/rest_api) (см. «POST/projects/PROJECT_ID/notifications»). – collimarco