Google App Engine频道令牌和客户端ID关系

时间:2012-04-01 00:10:03

标签: google-app-engine channel-api

在Channel API的Google App Engine文档中,声明“一次只有一个客户端可以使用给定的客户端ID连接到某个频道”。

相反,当我尝试创建具有相同客户端ID的频道时,会消耗新频道。换句话说,当我为ClientID“user_one”channelService.createChannel("user_one");调用creat channel api十次时,将创建10个不同的通道,其中包含10个不同的令牌字符串,当我向“user_one”{{1}发送消息时},不同设备上的所有十个客户端都会收到消息!

您如何描述这种情况?如何从这种机制中受益(一个具有不同通道的clientID,都接收相同的消息)?如何防止它为单个用户创建多个频道?

1 个答案:

答案 0 :(得分:2)

文档不完整但很好地描述了它的意图。它说:

一次只有一个客户端可以使用给定的客户端ID连接到某个通道,因此应用程序无法使用客户端ID进行扇出。换句话说,无法为多个客户端的连接创建中央客户端ID(例如,您无法为"全球 - 高分和&#创建客户端ID 34;频道并用它来向多个游戏客户广播。)

由您来跟踪您为每个ClientID创建的频道数量。根据我的经验,你描述的是有效的,但不可靠。使用ClientID创建的最新频道,较旧的频道,有时可以工作,有时不接收消息。

请注意,如果您在dev_appserver上尝试此操作,则所有客户端都会收到消息,但在真实服务器上,此行为不一样。