Альфа-версия SocketPush — универсальные уведомления для всех браузеров + 3 миллиона бесплатных уведомлений

image
Мы обнаружили, что ряд браузеров вообще не имеет в своём арсенале встроенный GCM-сервис. Среди них, к примеру, Опера, Вивальди, Firefox.
В Safari есть APNS, но мы реализуем работу через него чуть позже.

Также сегодня был яркий пример необходимости этой функции — один из пользователей пожаловался, что у него на работе не работают пуши: ни веб, ни через дополнение. Все дело в том, что у него на работе заблокированы все лишние порты.
В нашем случае, сокет работает через проксирующий nginx на 443 порту и не блокируется фильтрами.

Нам необоходимо небольшое нагрузочное тестирование, а также проверить все ли уведомления приходят нужным адресатам.
Данные уведомления проверены мною в chrome и firefox. Необходима проверка в edge, ie (хотя сомневаюсь, что будет работать) и конечно safari.

Прежде всего это удобный метод включить уведомления «на время», а потом выключить их закрытием вкладки. В отличии от других способов, данный метод не работает при закрытой вкладке или окне браузера.
По поводу включения, и немного о архитектуре — подробнее под катом.


В верхнем правом углу, после авторизации, есть значок вопроса. Нужно нажать на него и выбрать «Включить до закрытия вкладки», после чего разрешить уведомления в хроме.
За основу взята статья — Делаем вебсокеты на PHP с нуля

Я сделал мастер, который отслеживает все запросы к сокету, и воркер, который слушает redis-подписку для приёма команд на отправку оповещений, добавления или удаления пользователя.
Причем мастер слушает общий сокет с воркером, а воркер в этот сокет только пишет, когда нужно отправить оповещение. В свою очередь мастер слушает также сокеты подключенных пользователей и сокет для соединения.
Это позволяет в 2х процессах проверять и сокеты, новые уведомления и общаться между двумя процессами без каких-либо блокировок.
В Unicast пока что нет поддержки этой функции, сделано для того, чтобы личные, важные пуши не улетели куда не надо в случае сбоев альфа-версии.


  • Временный метод получения уведомлений
  • Получение уведомлений на неподдерживаемых браузерах
  • Различные плагины для других браузеров, в первую очередь, сделаем плагин для FF
  • Стационарный клиент для компьютеров


Включите уведомления как сказано в первом разделе. Потом в профиле попробуйте сделать пару раз пинг по SocketPush. Потом попробуйте в администрировании через тестовую форму внизу сделать тестовое уведомление. Подпишитесь на каналы, проверьте как с них будут идти оповещения.

Отпишите как работает в различных браузерах. Можно в комментариях, или в нашем сообществе Google+


Мы немного перепутали, оказывается в прошлый раз мы уменьшили число оповещений с 5к в день, до 3к в день. Теперь мы поднимаем до 100к в день.

То есть каждый месяц вы можете бесплатно рассылать 3 миллиона уведомлений.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

© Habrahabr.ru