Можно ли реализовать push-уведомление без использования FCM?

Мы хотели бы реализовать push-уведомления для некоторых веб-сайтов, которые мы разработали. Большинство этих веб-сайтов были созданы с помощью Spring MVC. Я хотел бы понять, является ли FCM лучшим вариантом для реализации веб-push-уведомлений или есть другие варианты (без каких-либо сторонних интеграций)? Нам нужно иметь возможность отправлять уведомления, даже если веб-приложение не запущено.

FCM кажется проще, но мы хотели бы знать, есть ли у него и недостатки?


person csharpnewbie    schedule 31.10.2017    source источник


Ответы (1)


Это зависит от того, какие уведомления вы хотите реализовать.

Для уведомлений на сайте вы можете использовать веб-сокеты или SSE. Вы можете построить его дома. Затем вы можете при желании отображать уведомления с помощью API уведомлений w3c.

Для внешних уведомлений (например, FCM) вам необходимо использовать службу push-уведомлений браузера. Служба push-уведомлений браузера жестко запрограммирована в браузере, и вы не можете ее изменить. Однако обратите внимание, что существует два разных типа веб-push-сервисов:

  • служба push-уведомлений браузера (вы не можете ее изменить): например, FCM для Chrome, автозапуск Mozilla для Firefox, APN для Safari и т. Д.
  • дополнительная веб-служба push, которая работает с этими службами за вас, создавая новый уровень абстракции: например, Кнопочная панель, FCM

Обратите внимание, что я упомянул FCM в обоих случаях, потому что он начинался с первой роли, а затем добавил еще и вторую роль.

person collimarco    schedule 31.10.2017
comment
спасибо за вклад. ищем извещения извне. Будет ли FCM работать только с Chrome или другими браузерами. Кажется, нет в соответствии с вашим пунктом 2a, но я не уверен с 2b. Не могли бы вы подробнее рассказать о дополнительной услуге веб-push? - person csharpnewbie; 31.10.2017
comment
после прочтения дополнительных сведений о web-push, я предполагаю, что вы имеете в виду использование VAPID, что означает, что мне вообще не нужно регистрироваться в FCM для push. И это должно работать как для Chrome, так и для Firefox (и для других поддерживаемых браузеров в будущем). Я правильно понимаю? - person csharpnewbie; 31.10.2017
comment
Да, если вы используете VAPID, который является стандартом, вам не нужно регистрироваться в FCM. VAPID "из коробки" работает со всеми стандартными push-сервисами (Mozilla autopush, FCM и т. Д.) - person collimarco; 31.10.2017
comment
VAPID работает, даже если веб-приложение не запущено в браузере? - person csharpnewbie; 31.10.2017
comment
Да, VAPID - это стандарт, который является частью Push API, который предназначен именно для доставки уведомлений, даже когда веб-сайт закрыт. - person collimarco; 31.10.2017
comment
В основном у вас есть два варианта: 1. использовать стандарт и работать напрямую с каждой службой push-уведомлений браузера (например, Mozilla autopush для Firefox, FCM для Chrome и т. Д.) 2. использовать службу веб-push, чтобы иметь дополнительный уровень абстракции: в этом случае вам необходимо зарегистрироваться в такой службе, как Pushpad или FCM, которая действует как прокси-сервер для правильной службы push-уведомлений браузера - person collimarco; 31.10.2017