2015-12-29 64 views
1

和这里就是我理解迄今为止 -通过主题发送推送通知到我新的推送通知所有设备

  1. 客户端应用程序将需要与谷歌云连接服务器(GCCS)注册。
  2. GCCS会将注册ID返回给客户端。
  3. 客户端会将设备ID和注册ID发送到应用服务器。
  4. 应用服务器将在其数据库中存储设备&注册。这个数据库可能会变得很大,这取决于用户数量。
  5. 本例中的应用服务器包含一个HTML页面和一个node.js脚本。管理员将进入页面,键入消息并点击发送。
  6. 应用服务器将使用发件人ID,API令牌,注册ID数组等等对GCCS进行POST调用。
  7. 消息由设备接收。

还有一件事叫做客户端应用程序可以订阅的主题。使用主题,您不必发送所有设备的注册ID。所有“订阅”该主题的设备都会收到该消息。如果您拥有数百万用户(取决于应用程序的受欢迎程度),并且您不必将注册ID分成1000个块来发送消息,则这非常有用。

我的问题是 -

  1. 如果我们使用的主题,我们需要坚持的注册ID,设备ID数据库,应用服务器上?看起来多余。
  2. 是否有任何可以发送主题消息的随时可用/商用GCM服务器?
  3. 是否容易建立自己的(因为它是一个简单的POST调用)?如果我要使用JavaScript,是不是会遇到CORS问题?

感谢您的帮助!

回答

0
  1. 如果我们使用的主题,我们需要坚持的注册ID,设备ID数据库,应用服务器上?看起来多余。

您是指C2DM实现吗?那些是deprecated as shown on the GCM documentation。关于主题,它们可能不是必需的,但对于其他消息呼叫是必需的。

基于文档上,to需要被设置为topic/[yourTopic]必要的有效载荷

https://gcm-http.googleapis.com/gcm/send 
Content-Type:application/json 
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA 

{ 
    "to": "/topics/foo-bar", 
    "data": { 
    "message": "This is a GCM Topic Message!", 
    } 
} 
  • 是否有任何现成的使用/商务GCM服务器可以发送主题消息?
  • 我找不到这方面有任何来源,所以我猜我们留下来实现它自己的应用服务器上。Google为我们提供了一个sandbox project供我们玩。

    1. 是否容易建立自己的(因为它是一个简单的POST调用)?如果我要使用JavaScript,是不是会遇到CORS问题?

    如果你谈论的是建立客户端应用(特别是Android的),有一个setup guide on the documentation。但是,如果它更多地放在应用程序服务器上,我不能对它进行评论。 XMPP库可用于处理XMPP连接服务器