适用于Android应用程序的Google Cloud Messaging,适用于同一应用程序的不同环境

时间:2014-05-07 18:48:31

标签: android testing push-notification google-cloud-messaging

我已经开始使用GCM(Google云消息传递)应用,我已经面临一个非常基本的问题。我想将我的应用程序拆分到不同的环境(DEV,CI,UAT,PROD,DR),以便我的DEV团队可以使用DEV XMPP服务器(每个开发人员本地一个)来测试应用程序而不会相互偶然发现;这同样适用于我的UAT团队以及PROD和DR服务器。因此,我希望不同的环境拥有自己的XMPP服务器来处理GCM消息而不会相互干扰。不幸的是,我似乎无法做到这一点,因为当我使用Google Developers Console创建一个新项目时,我只能在每个项目中获得一个唯一的项目编号,我可以在我的应用程序中使用它来发送消息。因此,每当我从应用程序向该项目编号发送消息(即通过GCM后端XMPP服务器)时,如果我有多个后端服务器,则该消息将随机传递到一个服务器,因为所有服务器都使用相同的唯一服务器登录项目编号和所有应用程序都使用该唯一的项目编号来发送消息。

如何处理此问题?我希望能够将客户端的消息转发到正确的服务器(DEV,CI,UAT,PROD,DR),以便我的测试消息不会在实时服务器等上处理。我应该在Google Developers Console中创建多个项目吗?并添加后缀环境或其他东西,以便我获得多个项目编号并使用每个环境一个?或者还有另一种方式吗?

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

每个Google API项目都有一个项目编号。因此,您唯一的选择是为每个环境创建一个不同的项目。您必须将所有列入白名单的项目与GCM CCS一起使用。

答案 1 :(得分:0)

还请注意http://developer.android.com/google/gcm/ccs.html中的以下内容:

CCS XMPP端点在gcm.googleapis.com:5235上运行。在测试功能(与非生产用户)时,您应该连接到gcm-staging.googleapis.com:5236(请注意不同的端口)。对分段进行测试(运行最新CCS构建的较小环境)对于将真实用户与测试代码隔离以及及早发现意外行为更改都是有益的。