【问题标题】:GAE channel API reconnectGAE 通道 API 重新连接
【发布时间】:2012-02-16 04:10:01
【问题描述】:

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

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

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

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

在此先感谢您的欢呼, 阿列克谢

【问题讨论】:

    标签: google-app-engine token channel-api clientid reconnect


    【解决方案1】:

    答案:

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

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

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

    希望有帮助!

    【讨论】:

    • 关于 2) 和 3) 见 this docs page。基本上,如果连接中断,您必须发出一个新令牌。重用一个令牌本质上与让多个客户端使用同一个令牌相同。
    • @westmark:嗯,我看到与 Moishe 的回答相矛盾,他对 gae 和 channel api 有第一手知识,我在该页面上看不到任何东西来证明你的观点......
    • @Megas 我记得曾经在通道 API 上搞砸过,一旦用户失去连接,就必须生成一个新的令牌。通道 API 拒绝使用旧令牌重新连接。也许从那以后这种情况已经改变了。我猜 Moishe 知道他的东西,忽略我之前的评论 :)
    猜你喜欢
    • 2020-07-17
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2021-11-26
    • 2012-04-04
    相关资源
    最近更新 更多