Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:manual:sender:push [2017/04/21 16:20] anton [Детали реализации] |
abills:docs:manual:sender:push [2017/07/04 16:34] (текущий) anton [Web Push API] |
||
---|---|---|---|
Строка 21: | Строка 21: | ||
</code> | </code> | ||
- | Администраторы подписываются на Push уведомления на странице "Профиль". | + | Создать таблицы, в которых хранятся клиенты и сообщения |
- | Пользователям предложит подписаться сразу при входе в кабинет. | + | <code> |
+ | # mysql -D abills < db/Push.sql | ||
+ | </code> | ||
+ | |||
+ | После этого можно включить скрипты Push переменной конфигурации $conf{PUSH_ENABLED}. | ||
+ | |||
+ | Администраторы подписываются на Push уведомления на странице "Профиль".\\ | ||
+ | {{ :abills:docs:manual:sender:admin_push_subscribe.png?nolink |}} | ||
+ | \\ | ||
+ | Пользователям предложит подписаться сразу при входе в кабинет.\\ | ||
+ | {{ :abills:docs:manual:sender:client_push_subscribe.png?nolink |}} | ||
+ | \\ | ||
==== Для разработчиков ==== | ==== Для разработчиков ==== | ||
Пример использования: | Пример использования: | ||
Строка 49: | Строка 60: | ||
Сервер, получив даные о подписке записывает контакты в таблицу ''push_contacts'' (модуль ''Contacts'') и отдаёт клиенту ''contact_id'', который сохраняется внутри ''indexedDB'' в браузере \\ | Сервер, получив даные о подписке записывает контакты в таблицу ''push_contacts'' (модуль ''Contacts'') и отдаёт клиенту ''contact_id'', который сохраняется внутри ''indexedDB'' в браузере \\ | ||
- | Когда нужно отправить уведомление, модуль ''Push'' получает контакт из таблицы и отправляет запрос на ''Push-уведомление'' сервису Push. Если запрос завершился удачно, сообщение сохраняется в таблицу ''push_messages'' с некоторым TTL. | + | Когда нужно отправить уведомление, модуль ''Push'' получает контакт из таблицы и отправляет запрос на ''Push-уведомление'' сервису Push. Если запрос завершился удачно, сообщение сохраняется в таблицу ''push_messages'' с некоторым TTL (24 часа). |
Когда клиент получает ''Push-уведомление'' от Push-сервиса, он используя сохранённый ''contact_id'', получает с сервера ABillS сообщение для этого ''contact_id''. После отправки сообщения клиенту, оно удаляется из таблицы. | Когда клиент получает ''Push-уведомление'' от Push-сервиса, он используя сохранённый ''contact_id'', получает с сервера ABillS сообщение для этого ''contact_id''. После отправки сообщения клиенту, оно удаляется из таблицы. | ||
- | Дневной периодик функцией ''msgs_clear_push_messages'', удаляет сообщения которые так и не были доставлены. | + | Дневной периодик функцией ''msgs_clear_push_messages'', удаляет сообщения которые так и не были доставлены.\\ |
+ | Для модуля ''Notepad'' есть [[abills:docs:manual:periodic:periodic#plagin_notepad|billd плагин]], для рассылки напоминаний через Push. |