Pull to refresh
34.02
PushAll
Платформа подписки на Push-уведомления

Google сломал GCM в Chrome

Reading time3 min
Views8.1K
image

На Google IO была показана обновленная версия Google Cloud Messaging. Была представлена версия API для iOS, показан отчет по количеству уведомлений, приложений и т.д. публика ликовала. Все было хорошо, пока 2-3 дня назад GCM в хроме начисто не отвалилось. Если точнее, приходит только около 2-10% Push-сообщений.

Проблеме подвержены как дополнения Google Chrome, так и сайты отправляющие Push через Push API используя Service Workers. Наш проект попал прямо по двум фронтами в итоге, приём сообщения работает только в Chrome на Android и через приложение на Android. Ведется разработка реализации на WebSocket для работы при открытой вкладке.
Подробнее под катом.


Выявление проблемы


Поначалу мне обратился один из пользователей. У него не работали уведомления ни через Web Push, ни через дополнение в хроме. При этом у меня прекрасно работали уведомления в дополнении, но не работали в Web Push, после того как я их включил. Тут сразу был понятен охват проблемы на пользователях сервиса — старые токены прекрасно работали, новые токены просто отказывались принимать сообщения.

Мы думали, что это временная проблема и ждали примерно пол дня. В сети мало кто вообще заметил эту проблему, но мы наткнулись на свежесозданную тему в группе Android-GCM и коллективно сбросили туда отчет по проблеме. Далее, один из разработчиков Chrome описал проблему в репозитории Chrome. Разработчики пообещали отдебажить эту проблему с командой GCM.

Данная проблема не зависит от версии браузера, операционной системы, или других параметров, проблема в серверах Google. Исключение составляет разве что Android — на нем судя по всему используется встроенный в Google-сервисы GCM клиент и все работает прекрасно.

image

Выше представлен лог из chrome://gcm-internals (кстати думаю не многие знали о такой возможности отладки GCM в Chrome)
Google просто перестал передавать поле FROM для некоторых сообщений.
Поэтому сообщения не могли найти приложения.

Не совсем понятно, как в такой крупной компании, такой проект как GCM дал такой сбой, да еще и на такой большой промежуток времени. Проблема до сих пор не исправлена.

Все сайты с работающие c GCM сейчас неработоспособны, тот же Roost или Pushover тоже не могут отправлять уведомления.

Ограниченность текущих решений



И тут интересно вот что — на данный момент, судя по данным из сети, невозможно использовать сторонний Push-сервис в Google Chrome или других браузерах. Более того, сейчас у каждого браузера свой протокол Push-уведомлений и нет унифицированного API. Service Worker не поддерживает работу с сокетами — он лишь откликается на встроенный в браузере Push-сервис.

Я считаю, что не совсем правильно в век открытых технологий создавать закрытые решения, для такой обыденной вещи, как уведомления. Сайты должны быть кросс-браузерными, а не зависеть от протоколов отдельных решений производителя.

Данная статья имеет больше информационный характер, т.к. многие не осведомлены об этой проблемы до сих пор. А также я бы хотел услышать дискуссию на тему открытых решений и их развития, возможно ли сейчас как-нибудь отправлять уведомления пользователям кросс-браузерно? Возможно ли использовать в этом решении свой собственный сервер, а не сервера разработчиков браузеров?

С одной стороны я поддерживаю общее решение, когда в браузере работает один процесс получения новых данных. Это экономит энергию. Но на ПК это не так важно. Тем более, если будут общие альтернативы, которыми могут пользоваться все — это решит проблему.
При этом важно понимать. что в браузере и так работают куча вкладок с фоновыми процессами, обновлениями и т.д. и даже десяток поднятых сокетов в Service Worker не сделают большой нагрузки для компьютеров, тем более, что для большей части пользователей, больше 10 и не нужно.

Более того на мобильных устройствах Google мог бы конвертировать уведомления через сокет в GCM или что то подобное.

P.S. Проблема исправлена
Only registered users can participate in poll. Log in, please.
Используете ли вы уведомления в браузере?
31.29% Да92
68.71% Нет202
294 users voted. 65 users abstained.
Only registered users can participate in poll. Log in, please.
Как вы думаете, должен ли быть общий открытый протокол для Push-уведомлений?
91.35% Да. нужен открытый протокол264
8.65% Нет, отдельные решения проще.25
289 users voted. 68 users abstained.
Tags:
Hubs:
+3
Comments5

Articles

Information

Website
pushall.ru
Registered
Founded
Employees
2–10 employees
Location
Россия