Gatsby + Netlify добавить push-уведомление
(видел несколько похожих вопросов, но они не решают мою проблему, и ни у одного из них нет полного примера.)
Я пытаюсь добавить push-уведомление на свой веб-сайт Gatsby + Netlify CMS.
Что я имею:
- У меня есть веб-сайт, созданный Gatsbyjs + Netlify CMS и размещенный на Netlify. Я также превратил этот сайт в PWA.
- Я обнаружил, что на этом веб-сайте есть лямбда-функция в папке lambda, созданной Netlify CMS.
- У меня есть служба 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. Эта функция привлечет всех подписчиков и отправит им сообщение.
Это также означает, что вам нужен способ обработки подписок (сохранение данных подписки), т.е. функция для обработки новой подписки и место для ее «хранения». По этой причине вам потребуется база данных для отслеживания подписчиков. Пользователь должен явно подписаться, прежде чем вы сможете отправлять им уведомления.