Skip to content

mvladt/webpush-scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Планировщик Web Push уведомлений

Простой клиент

Простой планировщик Web Push-уведомлений на Nodejs.

Принимает от клиента Push Subscription, datetime (когда отправить) и payload (что отправить). Кладёт всё это дело в хранилище. Извлекает уведомления по расписанию и отправляет в нужный момент.

Возможности

  • Приём и хранение уведомлений
  • Планирование уведомлений на указанное время
  • Автоматическая отправка уведомлений через Web Push Protocol

Установка и запуск

Ограничение — версия Nodejs не меньше «22.6».

  1. npm run setup
  2. Сгенерированные ключи положить в .env, по примеру .env.example
  3. Установить VAPID_SUBJECT в .env в формате mailto:<ваша_почта>либоhttps://<ваш_домен>
  4. Установить порт сервера в .env (опционально)
  5. npm run start

Описание API

Эндпоинты

GET /api/key — Получение VAPID ключа (публичного). Он нужен для получения PushSubscription в браузере.

POST /api/notifications — Планирование уведомления. В теле запроса должен быть объект NotificationEntity.

Примеры запросов

curl -X GET 'https://scheduler.push.mvladt.ru/api/key'
curl -X POST 'https://scheduler.push.mvladt.ru/api/notifications' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "123",
    "datetime": "2025-11-09T00:23",
    "payload": {"text": "Hello"},
    "subscription": {
      "endpoint": "https://fcm.googleapis.com/fcm/send/...",
      "expirationTime": null,
      "keys": {
        "p256dh": "...",
        "auth": "..."
      }
    }
  }'

Архитектура

graph LR
    A[Браузерный клиент] --> B[Сервер<br>Express];
    B --> D[Планировщик<br>Scheduler];
    D --> C[Хранилище<br>NotificationStore];

    D -- По таймеру --> E[Отправка уведомлений<br>WebPushModule];
    E --> F[Push Service<br>Chrome/Firefox/etc];
    F --> G[Браузер<br>Service Worker];
Loading

Это демонстрационный проект, показывающий полный цикл работы с Web Push Notifications.

About

Простой планировщик web-push уведомлений.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published