2

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

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

我们的场景:我们有一个预约调度系统,通过 API 在别处预约预约。我们使用该频道在日程安排上显示新的约会。但我担心如果在频道关闭并重新连接期间预订某些约会可能会错过。Channel API 是否可以防止这种情况发生?

4

2 回答 2

2

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

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

于 2011-12-19T19:38:23.550 回答
0

您不是在“重新连接”频道,而是在创建一个全新的频道 - 所以是的,消息可能会丢失。但是,如果您尝试将消息发送到已关闭的频道,您应该会遇到异常。

于 2011-12-19T03:22:32.330 回答