Google app engine 是否需要让同一网络中的所有设备使用谷歌云消息(GCM)服务接收推送通知

Google app engine 是否需要让同一网络中的所有设备使用谷歌云消息(GCM)服务接收推送通知,google-app-engine,networking,push-notification,google-cloud-messaging,ip-address,Google App Engine,Networking,Push Notification,Google Cloud Messaging,Ip Address,我已经使用谷歌应用程序引擎(Java)实现了谷歌云消息(GCM)推送通知 我已经在我的设备上创建了WiFi热点,以便为笔记本电脑访问互联网(操作系统:Ubuntu 12.04) 谷歌应用引擎作为HTTP服务器 我在跟踪 运行服务器的命令: ant-Dsdk.dir=/home/myUserName/appengine-java-sdk-1.9.18 runserver -Dserver.host=My\u Network\u IP构建文件:gcm demo appengine/build.xml

我已经使用谷歌应用程序引擎(Java)实现了谷歌云消息(GCM)推送通知

  • 我已经在我的设备上创建了WiFi热点,以便为笔记本电脑访问互联网(操作系统:Ubuntu 12.04)
  • 谷歌应用引擎作为HTTP服务器
  • 我在跟踪
  • 运行服务器的命令:

    ant-Dsdk.dir=/home/myUserName/appengine-java-sdk-1.9.18 runserver -Dserver.host=My\u Network\u IP构建文件:gcm demo appengine/build.xml

  • 请注意,我的\u网络\u IP来自系统设置-->网络-->无线-->IP地址

  • 推送通知的演示应用程序取自

  • 我已经更改了API密钥、发件人id、服务器url等必需的内容

  • 现在,当我从服务器发送推送通知时,我的设备会收到消息。在这个场景中,我的笔记本电脑和设备都在同一个网络中(笔记本电脑使用设备的互联网)

  • 当我在使用自己的移动数据(互联网)的其他设备上运行相同的客户端代码时,应用程序未注册,因此我无法发送推送通知

  • 当我将此设备连接到以前设备的WiFi并打开应用程序时,它将成功注册

  • 我想知道是否有必要让我的所有用户都在我用于服务器的同一个网络下?还是我做错了什么

  • 请澄清我的疑问


    谢谢。

    如果您在本地计算机上运行服务器代码,则只有连接到同一WiFi网络的设备才能联系您的服务器代码以传递其注册ID。这与GCM无关


    如果要发布应用程序,您需要将服务器代码部署到某个web服务器上,这将允许任何Android设备连接到该应用程序并向其发送注册ID(无论该设备使用何种类型的internet连接)。

    感谢您澄清我的疑问。你能推荐一些最好的web服务器吗?@程序员这取决于你选择的语言GCM有一个适用于最流行语言的API。但是AppEngine非常好,你可以在几分钟内免费将其部署到云上(直到你的用户负载很重)。@jirungaray“你可以在几分钟内免费将其部署到云上”我不知道怎么做?你能给我台阶吗?我使用appengine作为服务器,但运行在localhost上。我已经有了大约14000.00的庞大用户群。评论有点过分,但appengine是为谷歌云基础架构设计的,本地服务器只是一个测试工具(我可能会加上相当有限的内容)请务必阅读基础知识,因为我看到您使用的是ant,但支持的语言更多。我现在有一个应用程序在play store上。我想在其中使用gcm实现推送通知。我从一个使用谷歌appengine作为服务器的演示应用开始。我能够使用我的本地机器IP发送测试推送通知,就像我在问题中所说的那样。现在我想在我的应用程序中集成相同的功能,以便所有用户都能得到通知。如何使用Google App Engine实现这一点?