如果 GCM 不支持 HTTP 服务器的上游消息传递,那么关于 HTTP 服务器的用户通知的上游消息如何支持?
Posted
技术标签:
【中文标题】如果 GCM 不支持 HTTP 服务器的上游消息传递,那么关于 HTTP 服务器的用户通知的上游消息如何支持?【英文标题】:If GCM does not support upstream messaging for HTTP servers then how are upstream messages about user notifications supported for HTTP servers? 【发布时间】:2014-06-11 10:04:47 【问题描述】:Google Cloud Messaging 的文档指出,仅基于 XMPP 的应用服务器支持从 android 设备到云端的上游消息,而不支持基于 HTTP 的服务器。 HTTP 服务器只能用于下游消息传递。
但是,documentation 承认 GCM 的用户通知功能涉及上游消息传递,但仍然支持 HTTP 和 XMPP 服务器。这怎么可能?
【问题讨论】:
【参考方案1】:虽然我从未对其进行测试,但我假设无论服务器实现如何都支持用户通知的上游功能,因为与用户通知相关的上游消息会从一台设备到 GCM 服务器再到同一用户的其他设备。由于您的服务器不参与此过程,因此无论是通过 HTTP 还是 XMPP 连接到 GCM。
【讨论】:
那么我是否还可以通过 GCM over HTTP 实现自定义设备到设备消息传递 - 就像两个或多个用户实时聊天一样? @user87049 上游 gcm 无法做到这一点,因为它只能向同一用户的其他设备发送消息。 Eran,对于用户通知,GCM 判断它是通过我们的服务器在为用户发送消息时提供给 Google GCM 服务器的一组设备注册 ID 向同一用户发送的。如果我的 Android 应用提供的注册 id 指定了其他用户的注册 id,GCM HTTP 是否可以将消息从该设备传输到目标设备? @user87049 用于从设备向云端发送上游消息的 API 接受发送者 ID(将消息发送到 XMPP 服务器)或 notification_key(用于将消息发送到其他设备)同一用户)。我不确定如果您的应用尝试向其他用户的 notification_key 发送消息会发生什么。以上是关于如果 GCM 不支持 HTTP 服务器的上游消息传递,那么关于 HTTP 服务器的用户通知的上游消息如何支持?的主要内容,如果未能解决你的问题,请参考以下文章