4

我正在 GAE 及其 Channel API 之上开发一个聊天应用程序。我研究了文档和提供的示例,还查看了这里的一些答案,但我仍然不觉得我拥有 clientId/token 机制的全貌。

1)。令牌发行了 2 个小时,所以当它到期时,我必须申请一个新的。我还将使用客户端 ID 参数在我的处理程序上获得断开连接。那么这是否意味着通道在那时关闭并且通过请求新令牌我基本上是在创建一个新通道?因此,那时我可以使用什么客户端 ID(旧的还是全新的)都无关紧要?GAE 还会将此视为正在创建的新频道吗?

2)。如果用户在令牌到期之前离开我的页面(我将收到断开连接)。然后回来(仍然在那个 2 小时窗口内),我可以用旧令牌将他重新连接到同一个频道(假设我在 cookie 中有它们)?如果是,那么 GAE 不会将此视为正在创建的新频道吗?

3)。如果上述问题的答案是肯定的,那么我是否可以在服务器端垃圾收集断开连接的客户端 ID 和令牌并将它们分发给新连接的客户端。在这种情况下,如果用户回到我的页面并且他的旧客户端 ID/令牌已被其他人使用,他将简单地从池中接收另一对。或者这就是每页一个频道的规则生效的地方?

预先感谢和欢呼,Aleksei

4

1 回答 1

7

答案:

1) 是的,无论您是重复使用现有的客户 ID 还是新的客户 ID,您都需要为创建新频道付费。

2) 是的,您可以使用现有令牌重新连接,并且您无需为创建新频道付费。服务器上的 create_channel 调用是需要花费的;您在客户端上所做的任何事情都是免费的。

3)你可以这样做。请注意,如果您有多个客户端尝试使用相同的令牌进行连接,您将获得不可预知的结果。

希望有帮助!

于 2012-01-22T16:43:25.763 回答