2016-08-02 2 views
7

В испытании приложения я реализовал ТСМ для отправки сообщений уведомлений с использованиемAndroid: задержка в получении сообщения в ТСМ (onMessageReceived)

https://github.com/firebase/quickstart-android/tree/master/messaging

Для тестирования я послал сообщение (8:42 вечера) с консоли firebase, используя «Новое сообщение» в разделе «Уведомление».

Sent at 8:42 PM

Но в моем эмуляторе, я получил сообщение на 9:06 PM

received at 9:06 PM

Пожалуйста, дайте мне знать, если есть что-нибудь сделать, уменьшить задержку.

спасибо.

+0

Дата доставки здесь указывает, что FCM отправил сообщение на ваше устройство. Предполагая, что между FCM и вашим устройством/эмулятором нет шеи бутылки, вы должны получить сообщение в течение нескольких секунд. В вашем случае похоже, что потребовалось почти час. Если вы сможете воспроизвести это последовательно, я подал бы билет поддержки с поддержкой Firebase, предоставив некоторую дополнительную информацию о вашей ситуации. https://firebase.google.com/support/ –

+0

@ArthurThompson Даже я столкнулся с этой проблемой, так как вчера я пытался всевозможные вещи получать уведомления в своем эмуляторе, но только к настоящему времени (несколько минут назад) я получил все мои уведомления со вчерашнего дня, когда я попробовал его со своим планшетом как в Emu, так и в Tablet, у меня постоянно было подключение к сети в моем эмуляторе. – Bikash

+1

Это похоже на сетевую проблему. Если вы получаете сообщения вообще, у вас есть сделано достаточно и должно получить их быстро, если сетевые условия не предотвратят это. Можете ли вы получать другие уведомления в более разумные сроки на одном устройстве/эмуляторе? –

ответ

0

Мое лучшее предположение, что это связано с сообщением priority.

Из документов:

Установка приоритета сообщения

У вас есть два варианта для назначения приоритета доставки для последующих сообщений на Android: нормальный и высокий приоритет. Доставка сообщений с нормальным и высоким приоритетом работает следующим образом:

Нормальный приоритет. Это приоритет по умолчанию для сообщений данных. Сообщения с обычным приоритетом не будут открывать сетевые подключения на спящем устройстве, и их доставка может быть отложена, чтобы сохранить батарею. Для менее чувствительных к времени сообщений, таких как уведомления о новых электронных сообщениях или других данных для синхронизации, выберите обычный приоритет доставки.

Высокий приоритет. Это приоритет по умолчанию для уведомлений. FCM пытается немедленно отправить сообщения с высоким приоритетом, позволяя службе FCM разбудить спящее устройство, когда это возможно, и открыть сетевое подключение к вашему серверу приложений. Например, приложениям с оповещениями о чатах, чатах или голосовых вызовах обычно необходимо открыть сетевое подключение и убедиться, что FCM доставляет сообщение на устройство без задержки. Установите высокий приоритет, если сообщение является критическим по времени и требует немедленного взаимодействия пользователя, но будьте осторожны, что настройка ваших сообщений на высокий приоритет вносит больший вклад в утечку батареи по сравнению с обычными сообщениями о приоритете.

Я не уверен, но я считаю, что normal приоритета используется при отправке сообщений на «Все для Android устройств», которые, кажется, вы делаете в вопросе выше. Также возможно, что он отправляется в тему FCM, которая равна optimized for throughput rather than latency

Таким образом, установка приоритета high или отправка на конкретное устройство, а не на тему, должны уменьшить задержку, которую вы видите.

Также; Имейте в виду, что push-сообщения основаны на лучших усилиях. Нет никаких гарантий того, что сообщение будет доставлено в указанное время или вообще.

0

Этот трекер относится к вопросам, связанным с Android Quickstart.Гуру, работающие над этим проектом, не имеют доступа к какой-либо диагностике, чтобы помочь устранить проблемы с FCM. Обратитесь в службу поддержки. https://firebase.google.com/support/

Смежные вопросы