The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

10.03.2019 11:00

Доступен выпуск проекта 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.



  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Выпуск платформы обмена сообщениями Zulip 2.0
  3. OpenNews: Релиз платформы для конфиденциального обмена сообщениями RetroShare 0.6.5
  4. OpenNews: В открытую платформу обмена сообщениями Mattermost инвестировано 20 млн долларов
  5. OpenNews: Завершено открытие серверной части сервиса мгновенного обмена сообщениями Wire
  6. OpenNews: Доступна система обмена сообщениями Briar, способная работать в режиме P2P
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/50285-push
Ключевые слова: push, websocket, gotify
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (4), 11:53, 10/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Про батарейку тут уже говорили? Google Services хоть и бэкдор, но сделан таким образом, что батарейку не жрёт особо.
     
     
  • 2.16, Crazy Alex (ok), 14:18, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вообще-то жрёт очень основательно (у меня без него смартфон 4 дня держался, с ним - три). Но да, гугл имел возможность использовать то, что не дал больше никому - управление пробуждением устройства,
     
     
  • 3.43, Аноним (43), 03:45, 11/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то у GCM нет никаких эксклюзивных возможностей Насколько я помню, тот ... большой текст свёрнут, показать
     
     
  • 4.47, Crazy Alex (ok), 12:43, 11/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В четвёрке так и было. Гугл закрутил гайки в шестом, если не вру, убрав возможность разбудить устройство для всего, кроме системных приложений. Хотя о деталях могу врать. Может, добавление исключений к Doze  это и исправило, не знаю.
     
     
  • 5.48, FedeX (ok), 18:35, 11/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >если не вру, убрав возможность разбудить устройство для всего, кроме системных приложений

    таки врете. Google Services с Firebase Cloud Messages как раз и могут хоть даже на 9м андрюше разбудить устройство и передать управление приложению. Без добавления оного в белый список дозы. А вот решение из заглавия темы явно будет требовать добавить прогу в белый список дозы иначе никто  ему слушать вебсокеты и никого пробуждать не даст.

     
  • 3.50, Анонимный Алкоголик (??), 08:09, 19/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >не дал больше никому - управление пробуждением устройства,

    Не совсем. Управление подключением к сети, незаметной посылкой запросов, получением чего-то там... Всё совершенно не беспокоя "пользователя". Ага...

     
  • 2.44, Аноним (43), 04:06, 11/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Смысл фреймворка сообщений Play Services не в том, чтобы просто не жрать батар... большой текст свёрнут, показать
     

  • 1.5, Аноним (5), 12:09, 10/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Ну это классно, но наверно интересно 50/50
    Все же как писали выше есть Apple Push Notification Service, а БЕЗ сертификата вы даже на "своем подконтрольном оборудовании" ничего не отправите на iOS и на Safari вроде как тоже.
    А если у вас есть сертификат, то значит можно пользоватся и дальше  Apple Push Notification Service.
     
     
  • 2.7, Аноним (7), 12:25, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Но в статье (и на картинке) ни слова ни слова об упомянутых Вами мобильной ОС и браузере.
     
     
  • 3.11, Аноним (5), 12:41, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну так на Android же я думаю без проблем Gotify доставляет push
     
  • 2.15, Григорий Федорович Конин (?), 14:17, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    При чем тут сертификат для APNS? Это абсолютно паралельная реализация (как и у яндекса, например). Висит демон и держит подключение на какой-то ваш сервер.
     

  • 1.6, анон (?), 12:18, 10/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    такое впечатление что в комментарии набежали маркетологи из Apple
     
     
  • 2.10, Аноним (5), 12:39, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну причем тут маркетологи, просто надо же на ВСЕ платформы доставлять уведомления.
    Я бы с радостью пользовался НЕ APN, а чем то другим, если бы это "что то другое" доставляло push сообщения на iOS и т.п
     
     
  • 3.12, Аноним (12), 12:47, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Именно. Основной процент аудитории на iOS, так что без APN ты далеко не убежишь.
     
     
  • 4.21, Michael Shigorin (ok), 15:09, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Основной процент аудитории

    Чьей и где?

    PS: или... Вы вообще из какого года?

     
     
  • 5.24, Аноним (12), 15:27, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • –8 +/
    2019.
    Большинство стартапов даже не делает версию для андроида - иос аппликуха (основное) и веб-сайт.
     
     
  • 6.26, Michael Shigorin (ok), 15:58, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Большинство стартапов

    Можно циферки и источник?

     
     
  • 7.27, Аноним (12), 16:04, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Бизнес-инкубаторы QD, Ingria. Циферки не дам - это из результатов общения. Субъективно, только 1 из 10 стартапов делает андроид приложение - для него достаточно веб-сайта.
     
     
  • 8.28, Michael Shigorin (ok), 16:11, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Последняя пишет про 41 резидента -- такие вещи тоже стоит хоть как-то указывать,... текст свёрнут, показать
     
  • 5.34, Анонэйм (?), 18:10, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Михайл, никого не истересует количество аудитории. Важно качество и ее способность платить деньги, поэтому аудитория андроида часто даже не рассматривается.
     
     
  • 6.35, Michael Shigorin (ok), 18:38, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > никого не истересует количество аудитории

    И много Вы лично платите пейсбуку, специалист по аудиториям?

     
     
  • 7.40, Анонэйм (?), 21:02, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Причём тут это?
    Прост сравните сколько денег вокруг AppStore и GooglePlay.  Банальный здравый смысл вам скажет: «сделаем приложение для iOS, а если хорошо пойдёт, то может как нить потом и для Андроида».
     
     
  • 8.41, Michael Shigorin (ok), 22:18, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Банальный здравый смысл мне уже не раз подсказывал не бегать за деньгами И дал... текст свёрнут, показать
     
  • 4.22, Аноним (22), 15:17, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Предлагаешь пожалеть тебя, что работаешь на аудиторию ослов? Меняй аудиторию/работу. Это в первую очередь твой выбор.
     
     
  • 5.25, Аноним (12), 15:42, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Предлагаешь пожалеть тебя, что работаешь на аудиторию ослов?

    Самая адекватная и платежеспособная аудитория. Про пожалеть и ослов - так тебе бы хотелось, но нет.

     
  • 4.23, Илья (??), 15:21, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У нас довольно крупное приложение для IOS/Android. На IOS - 10 % пользователей, на андроиде - 90
     
     
  • 5.39, Ключевский (?), 20:33, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну статистика примерно совпадает со статистикой мобильных ОС в мире. Под 90% Андроид и около 9 процентов иОС, остальное маргинальщина
     
  • 3.18, Онаним (?), 14:20, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вендорлоченные платформы в пролёте, что вполне естественно.
     
  • 3.19, Crazy Alex (ok), 14:23, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тебе надо - ты и сиди со своей проприетарщиной, а в этой теме тебе делать нечего
     

  • 1.29, Аноним (29), 16:53, 10/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если могильное приложение нормально работает в фоновом режиме надо эту штуку к zabbix прикрутить.
     
     
  • 2.38, Ключевский (?), 20:19, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тоже подумал об уведомлениях от заббикса.
     

  • 1.33, jOKer (ok), 17:56, 10/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Чем сабж лучше Centrifugo?
     
     
  • 2.36, Богдан Помазан (?), 18:55, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спасибо за наводку
     

  • 1.42, Аноним (42), 23:13, 10/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Вебсoкеты в 2019-м?
    Вы серьёзнo?
    Мoжет, всё же, MQTT?
     
     
  • 2.45, pvnhome (ok), 06:24, 11/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    MQTT - это более высокий уровень. Например, можно MQTT поверх WebSockets да еще и с TLS.
     

  • 1.46, Аноним (46), 07:38, 11/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Offtop: https://symfony.com/blog/symfony-gets-real-time-push-capabilities

    Сервер написан на golang,
    спецификация открытая: https://datatracker.ietf.org/doc/draft-dunglas-mercure/

    Проект молод, но уже набрал 1000 звёзд и официальная поддержка одного из самых крупных PHP сообществ сулит ему весьма радостные перспективы. Но не ограничивается только PHP.

     
     
  • 2.51, Аноним (51), 23:14, 05/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, спасибо.
     

  • 1.49, Аноним (49), 18:24, 13/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не нужно, есть nginx-push-stream-module
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру