防范AppEngine Channel API中的错过消息

时间:2011-12-19 01:46:01

标签: google-app-engine channel-api

在AppEngine Channel API中,频道会在2小时后自动关闭。我们通过在onError事件中重新加入通道来处理它。

如果在频道重新连接时发送消息,是否有可能错过消息?

我们的场景:我们有一个约会安排系统,通过API在其他地方预约约会。我们使用该频道在他们到达时按计划显示新约会。但我担心如果在关闭和重新连接频道期间预订某些约会可能会错过。 Channel API是否可以防范这种情况?

2 个答案:

答案 0 :(得分:2)

一些背景知识:Channel API中的“客户端ID”用于创建瞬态XMPP端点。给定的客户端ID将始终映射到同一个临时端点。因此,当您使用令牌重新连接到使用相同客户端ID创建的通道时,您将重新连接到同一端点。因此,您可能会看到客户端在重新创建通道之前发送消息的行为。但是没有保证,当我们将消息发送到没有侦听客户端的频道时,我们不会主动对消息进行排队。

在您的情况下,您是否可以返回最新的约会列表作为返回新令牌的同一响应的一部分?

答案 1 :(得分:0)

你没有'重新连接'频道,你正在创建一个全新的 - 所以是的,可能会错过消息。但是,如果您尝试将消息发送到已关闭的频道,则会出现异常。