【问题标题】:Implement Comet / Server push in Google App Engine in Python用 Python 在 Google App Engine 中实现 Comet/Server 推送
【发布时间】:2023-03-23 07:31:02
【问题描述】:

如何使用 Python 在 Google App Engine 中实现 Comet/Server 推送?

【问题讨论】:

    标签: python google-app-engine comet server-push channel-api


    【解决方案1】:

    我们刚刚宣布了使用 App Engine 应用进行彗星推送的 Channel API:http://googleappengine.blogspot.com/2010/05/app-engine-at-google-io-2010.html

    如果您在 Google IO,我将在明天下午 1 点(在 API 轨道上)讨论这个问题:http://code.google.com/events/io/2010/sessions/building-real-time-apps-app-engine-feed-api.html

    这是本次会议的 YouTube 视频:http://www.youtube.com/watch?v=oMXe-xK0BWA

    希望最后一次更新!现已发布:code.google.com/appengine/docs/python/channel

    【讨论】:

    • 很抱歉我不得不错过昨天的演讲(太多重叠的演讲!)。关于我们何时会看到此功能的文档或何时可以使用它的任何消息?
    • 演讲本身将于下周在 YouTube 上播放(我认为),其中包含 API 的详细信息。没有具体的发布日期,但如果您想注册受信任的测试人员,您可以在此处注册:spreadsheets.google.com/…
    • 能否请您链接到视频?
    • 想知道你能否给我们一个估计什么时候可以玩这个:)?
    • 点 i 和交叉 t... 很快就会找到这个。
    【解决方案2】:

    目前,我会排除在 App Engine(任何语言)中使用 Comet。 Comet 基于长寿命的 HTTP 连接,App Engine 最多会在大约 30 秒左右使任何单个连接超时;很难想象有比这更糟糕的比赛了!

    【讨论】:

    • 这个答案不再相关。 Moish 的作品是。
    • Moishe 的回答将不再相关,Channel API 计划于 2017 年 10 月关闭
    【解决方案3】:

    Comet(或类似的东西 - XMPP API)在谷歌应用引擎路线图上。现在,远离。

    http://code.google.com/appengine/docs/roadmap.html

    【讨论】:

    • 这个没用,虽然已经发布了,appengine可以用这个API构建聊天机器人,但是还是不允许长轮询
    • 你是对的。需要另一台服务器将客户端长轮询转换为 XMPP 消息。最近发布的 tornado 框架看起来是个不错的选择!
    【解决方案4】:

    30 秒绰绰有余;无论哪种方式,当时间过去且没有新事件发生时,您都应该返回无操作消息。

    这可以防止客户端超时,并且由所有做 comet 的人来完成。

    只需发送请求,然后在服务器上使其等待 25 秒后发生事件或超时。

    【讨论】:

      【解决方案5】:

      查看 App Engine 1.3.8-pre 版本,我看到了 Channel API 服务存根和更多代码。所以看起来我们可以在本地开始尝试了。

      【讨论】:

        【解决方案6】:

        自 12 月 2 日起,Google App Engine 支持使用 Channel API 进行服务器推送。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多