当前位置: 首页 > 知识库问答 >
问题:

关于GCM注册的文件不一致

段铭晨
2023-03-14

在GCM Advanced Topics中,在“为什么不应该很少注销”标题下,有两个关于注册的断言似乎存在冲突。

第一:

“regID将应用映射到设备。它与特定登录用户无关。”

我认为映射是一对一的对应(或者应该是)。

第二:

“您的应用服务器应维护当前用户和注册ID之间的映射。”

然而,第一项陈述声称没有这种联系。(假定“当前用户”已使用应用服务器“登录”,但文档中未对此进行指定。)

我的问题是,文件是否应修改如下:

>

  • GCM维护从regID到设备的映射。[术语映射最有可能是指功能关系,但这并未指明。]

    GCM不维护从regIDs到当前用户的映射。

    开发人员如何解释第一条和第二条语句?

  • 共有1个答案

    陈马鲁
    2023-03-14

    我看不出有什么矛盾。如第一段引言所述,每个设备上的每个应用程序都分配了一个注册ID(即同一设备上的不同应用程序有不同的注册ID,而同一应用程序在不同设备上有不同的注册ID)。

    由于GCM不关心哪个用户登录到特定设备上的特定应用程序(此类登录是GCM不知道的特定于应用程序的逻辑),因此具有登录功能的应用程序应跟踪(在第三方服务器中)每个设备上当前登录的用户,并将注册ID与该用户关联(以便服务器仅向用户登录的设备发送与该用户相关的GCM消息)。

    至于你写的声明:

    1. 那是不准确的。应用程序和设备之间的映射(如谷歌所述)。
    2. 那是正确的
    3. 这取决于特定应用程序的逻辑(应用程序不一定有登录功能)。
    4. 这是真的,假设应用程序有登录功能
     类似资料:
    • 我的客户机/服务器上的推送通知设备注册管理有一个小问题。 同样,这里的问题是,我有两个或更多的注册ID都可以工作(如果我旧的一个在尝试从服务器发布消息时不工作,这不会有问题,因为我可以简单地清理它)。

    • 我已经从中看到了“GCM体系结构概述”http://developer.android.com/guide/google/gcm/gcm.html.文档说,当android应用程序注册GCM时,会调用onRegistered(上下文c,字符串regId),其中包含regId,然后用户将该regId发送到其服务器。该文件称“谷歌可能会定期刷新注册ID”。我的问题是,我怎么知道谷歌已经为用户刷新了re

    • 在我的应用程序中,我有以下代码可注册到GCM服务: 当我运行这段代码时,我在服务器中看到我的设备用2个不同的注册了两次,当服务器发送推送时,设备收到2条消息。 这是正常的事情吗?有没有办法确保只有一个?

    • 我对Android的服务有点“问题”。关键是,每次我请求注册id时,服务器都会返回不同的注册id。最糟糕的是,在进行测试后,旧的和新的都正常工作!!(我向老用户和新用户发送推送消息,我的应用程序正在接收来自每一个用户的推送!!)。 这是我正在使用Android服务器中的寄存器: 我不知道我做错了什么,但是,这已经发生在我身上两个月了(或多或少)。在我从来没有遇到过这个问题之前,服务器通常会返回相同

    • 我们正在使用实例ID API切换通知架构体系,以使用新的GCM 3.0注册机制。以前我们使用旧的机制使用GCMRegistrar.register()方法。 我们遇到的问题是,我们注意到,如果设备是用旧的GCMRegistar注册的,那么在更新并用新的实例ID API注册之后,两个注册令牌都是有效的,并且可以接收通知。 我预计旧的注册令牌将被停用,并且当向旧令牌发送通知时,我们的推送服务器将收到规

    • 问题内容: 我已经使用GCM很长时间了。有一天,它突然破裂了。问题是我发送的第一个推送获得了成功状态,但该应用程序未收到任何推送。我发送的第二次推送失败,并显示NotRegistered错误。我重新安装该应用程序:成功(未收到通知),失败(未注册)->循环。我不知道发生了什么变化。Google支持非常无助,需要花费大量时间来回答简单的问题,无论是GCM问题,APNs问题还是客户问题。如果以前有人遇