Выпуск Gotify 2.0, сервиса для доставки push-уведомлений

Доступен выпуск проекта
Gotify 2.0, в рамках которого развивается реализация сервера для доставки и приёма push-уведомлений с использованием протокола Websocket. На базе предложенного решения можно организовать самодостаточную систему доставки информационных сообщений или уведомлений о наступлении различных событий, работающую в режиме реального времени и выполняемую на подконтрольном оборудовании, без привязки к сторонним сервисам (например, может использоваться как альтернатива Google/Firebase Cloud Messaging, не привязанная к Google Play Services). Код написан на языке Go и распространяется под лицензией MIT. Для быстрого развёртывания сервера предоставляется образ для системы Docker. В качестве СУБД могут применяться SQLite, MySQL и PostgreSQL.

В дополнение к серверной части проектом подготовлено android-приложение для чтения уведомлений и интерфейс командной строки для автоматизации отправки уведомлений. Для получения сообщений и управления подписками предложен web-интерфейс. Для отправки сообщений применяется REST-API, а приём осуществляется при помощи WebSocket. Доступен API для расширение функциональности через подключение плагинов.

Предоставляются средства для управления пользователями сервера, клиентскими приложениями (подписчики, получающие уведомления) и приложениями для отправки. Привязка приложений, которые могут отправлять уведомления, осуществляется по токену (идентификатору канала), который генерируется через web-интерфейс. В простейшем случае в качестве приложений для отправки может использоваться утилита curl или cli-интерефейс gotify:

   curl -u admin:admin -X POST https://yourdomain.com/application -F "name=test" -F "description=tutorial"
   или
   gotify push -t "my title" -p 10 "my message"

Клиентские приложения (web-интерфейс и android-приложение) могут только получать и удалять сообщения, но не могут их отправлять. При наличии соответствующих полномочий через web-интерфейс также можно управлять подписчиками, генерировать токены для отправки и создавать новых пользователей. Каждое сообщение включает такие атрибуты, как содержимое, дата, заголовок, приоритет и идентификатор приложения (канала).

Дополнительно можно отметить выпуск Pushpin 1.20, обратного прокси-сервера, позволяющего поддерживать постоянно установленные соединения между бэкендом и клиентами. Прокси может использоваться для обеспечения доставки сообщений через WebSocket, потоковой передачи поверх HTTP и обеспечения работы длительно живущих сервисов, в которых операции инициируются со стороны сервера. В том числе Pushpin может применяться для организации доставки push-уведомлений на базе любых API.

В качестве бэкенда может выступать любое web-приложение, доступное через обычные короткоживущие HTTP-соединения и работающее под управлением любого http-сервера. Обмен данными в рамках постоянно установленного соединения WebSocket транслируется в серию отдельных HTTP-запросов к бэкенду. Для отправки клиенту push-сообщения, независимо от метода подключения клиента, бэкенд осуществляет обращение к предоставляемому прокси Web API через отправку отдельных POST-запросов. Данные запросы подставляются в постоянные соединения, установленные с клиентами. Pushpin написан на языке С++ и распространяется под лицензией AGPLv3.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.