我正在使用GAE及其Channel API之上的聊天应用程序。我已经研究过doc和提供的例子,也看了一下这里的一些答案,我仍然不觉得我对clientId / token mechanics有了全面的了解。
1)。令牌发出2个小时,所以当它到期时我必须申请一个新令牌。我还将通过客户端id param在我的处理程序上获得断开连接。那么它是否意味着该频道在那时关闭并且通过请求新令牌我基本上创建了一个新频道?因此,在那个时候我可以使用哪个客户端ID,旧的还是全新的? GAE还会将其视为正在创建的新频道吗?
2)。如果用户在令牌过期之前离开我的页面(我将收到断开连接)。然后回来(仍然在那个2小时的窗口内),我可以用旧令牌将他重新连接到同一个频道(假设我把它们放在cookie中)?如果是,那么GAE不会将其视为正在创建的新频道吗?
3)。如果上述问题的答案是肯定的,那么我可以在服务器端垃圾收集断开连接的客户端ID和令牌,并将它们分发给新连接的客户端。在这种情况下,如果用户回到我的页面并且他的旧客户端ID /令牌已被其他人使用,他将只从池中接收另一对。或者这是每页规则一个通道生效的地方吗?
先谢谢你的欢呼和欢呼, 阿列克谢
答案 0 :(得分:7)
数目:
1)是的,无论您是重新使用现有客户ID还是新客户ID,都需要为创建新频道付费。
2)是的,您可以重新连接现有令牌,并且不会因创建新频道而被收费。服务器上的create_channel调用是成本调用的;你在客户端做的任何事情都是免费的。
3)你可以这样做。请注意,如果您有多个尝试使用相同令牌连接的客户端,您将获得无法预测的结果。
希望有所帮助!