2015-09-28 3 views
0

У меня есть соединение GCM (Google Cloud Messaging) XMPP, работающее с клиентами Android-приложений и сервером Ubuntu. В документации сервера (https://developers.google.com/cloud-messaging/ccs) обсуждаются различия между выпуском (gcm-xmpp.googleapis.com:5235) и pre-productions (gcm-preprod.googleapis.com:5236) подключениями GCM с сервера. Однако формулировка в разделе говорится сообщений направляется от сервера в соответствии с SENDER_ID, а не URL: порт сервер зарегистрирован по адресу:Нужно ли мне создать новый проект для второго SENDER_ID для стороннего сервера GCM?

Конечная точка CCS XMPP работает на GCM-xmpp.googleapis. ком: 5235. При тестировании функциональности (с непроизводственными пользователями) вместо этого вы должны подключиться к gcm-preprod.googleapis.com:5236 (обратите внимание на другой порт). Регулярное тестирование на preprod (меньшая среда, в которой работает последняя сборка CCS) выгодно как для изоляции реальных пользователей от тестового кода, так и для раннего обнаружения неожиданных изменений поведения. Обратите внимание, что соединение получает сообщения восходящего потока, предназначенные для его идентификатора отправителя GCM, независимо от того, к какой среде (gcm или gcm-preprod) он подключен. Поэтому тестовый код, подключающийся к gcm-preprod.googleapis.com:5236, должен использовать другой идентификатор отправителя GCM, чтобы избежать восходящих сообщений из производственного трафика, отправляемого через тестовые соединения.

Поскольку SENDER_ID является номером проекта, означает ли это, мне нужно создать вторую версию проекта с МЦЕМ позволили запустить производство и предпроизводственных версии моего GCM сервера 3rdp партии одновременно?

+0

Да, вам нужно будет создать второй проект на Консоли разработчиков для preprod. Это хороший способ отделить тестовый код от производства, особенно когда у вас много трафика/активности в prod. – Koh

+0

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

+0

Основываясь на этих комментариях от Koh и e4c5, я сделал некоторый прогресс, я создал тестовую версию приложения в консоли разработчика и создал учетные данные для GCM API в проекте testapp. Сервер приложений успешно регистрируется с новыми SENDER_ID и паролем. Сообщения клиентов, направляемые для testapp SENDER_ID, не доходят до сервера testapp. Похоже, мне нужно, чтобы клиент перерегистрировался, чтобы получить новый reg_id из API игры, используя testapp SENDER_ID. Больше изменений, чем я надеялся, когда просто пытаюсь пересмотреть производственное приложение. – Blake

ответ

0

Основываясь на комментариях выше, я создал новую тестовую версию продукта и сгенерировал учетные данные сервера для тестового проекта. После того, как тестовые варианты клиента android перерегистрировались для GCM с использованием SENDER_ID тестового сервера, они смогли отправлять и получать сообщения с новым тестовым сервером. Сервер производства и тестовый сервер работают параллельно в сети с тестовым клиентом, а производственные клиенты маршрутизируют соответствующие серверы.