C2DM 折叠键实现说明需求

3

你好,我看不到关于collapse_key实现的任何解释。我认为我知道它的作用,但不知道它的实现方式!Android Cloud to Device Messaging Framework

我已经设置了一个C2DM框架,并向许多手机发送4种类型的消息。

字符串消息非常基本,类似于这样:

type:name:uuid
type:name:uuid:number
type:uuid:id

如果手机关机,许多信息将被堆积等待手机上线。据我所知,我的系统可以正常运行,但是collapse_key在这里对我有什么作用呢?
使用addEncodedParameter(sb, "collapse_key", "no_ide_what_to_put_here");添加编码参数,但我不知道应该放什么。

我发现这个文本中提到了“折叠键”,用于在Google C2DM服务器上通过相同的键覆盖旧消息。如果我尝试发送相同的消息3次,我必须使用相同的键值。Google云服务器将使用相同的键值发送最新的消息。 - Erik
1
是的,如果您希望每个单独的消息都被传递,则每个折叠键应该是不同/唯一的。 - Kasium
3个回答

5
您提到了重试相同的消息3次并使用相同的键值。实际上,它不一定是相同的消息。例如,如果您有一条消息指示股票的当前价格,并且您只关心最新的价格,则可以发送具有相同键的不同消息。当设备重新联机时,它只会收到最新的报价消息。
这可能已经是您之前所说的,但我想要明确的是,这不仅适用于“重试发送相同的消息”。

其实,Google说过:“请注意,由于没有保证发送消息的顺序,“最后”一条消息可能不是应用服务器发送的最后一条消息。” 请参见:http://code.google.com/android/c2dm/#push - Ted

2

我发现这段文字: “折叠键”用于在Google C2DM服务器上覆盖具有相同键的旧消息。如果我尝试发送相同的消息3次,则必须使用相同的键值。Google云服务器将使用相同的键值发送最新的消息。


1

...但请注意以下内容(来自http://code.google.com/intl/sv-SE/android/c2dm/):

“请注意,由于无法保证消息发送的顺序,“最后”的消息可能并不是应用服务器发送的最后一条消息。”

但如果您不生成大量消息,这可能不是一个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接