Gatsby + Netlify добавить push-уведомление

(видел несколько похожих вопросов, но они не решают мою проблему, и ни у одного из них нет полного примера.)

Я пытаюсь добавить push-уведомление на свой веб-сайт Gatsby + Netlify CMS.

Что я имею:

  1. У меня есть веб-сайт, созданный Gatsbyjs + Netlify CMS и размещенный на Netlify. Я также превратил этот сайт в PWA.
  2. Я обнаружил, что на этом веб-сайте есть лямбда-функция в папке lambda, созданной Netlify CMS.
  3. У меня есть служба Windows, которая работает в фоновом режиме моего ПК и вызывает лямбда-функцию для создания push-уведомления.

Вот архитектура моего проекта:

Я хочу сделать следующее: служба Windows (WS) будет запускать push-уведомление после того, как на моем компьютере произошли события, она (WS) вызывает лямбда-выражение в Netlify, затем лямбда отправляет push-уведомление в PWA.

Я видел несколько сообщений, в которых говорилось, что push-уведомлению нужен какой-то бэкэнд для отправки уведомлений, поэтому они используют что-то вроде подписчика, обмена сообщениями Firebase или Pusher и т. Д. И я искал день, пробовал несколько кодов безуспешно.

Я обнаружил, что у Gatsby есть плагины офлайн и сервис-воркер, но даже последняя их версия, похоже, не способна делать push-уведомления. Я также нашел кое-какие части и кусочки здесь и там, но не полный пример. После целого дня поисков мой мозг перестает работать.

Может ли кто-нибудь указать мне правильное направление и показать мне полный пример получения Gatsby + Netlify CMS запускающих сообщений от службы Windows для отправки push-уведомлений в PWA?

1 ответ

Бесстыдный плагин, но у меня есть сообщение в блоге о подобной (хотя и более простой) настройке: https://www.dshomoye.dev/gatsby-web-push-notifications/ - надеюсь, вы найдете это полезным. Подвести итоги:

Вы более или менее на правильном пути, я использую Postman для вызова моей функции Netlify - в вашем случае она будет заменена службой Windows. Эта функция привлечет всех подписчиков и отправит им сообщение.

Это также означает, что вам нужен способ обработки подписок (сохранение данных подписки), т.е. функция для обработки новой подписки и место для ее «хранения». По этой причине вам потребуется база данных для отслеживания подписчиков. Пользователь должен явно подписаться, прежде чем вы сможете отправлять им уведомления.

Другие вопросы по тегам