如何在 Python 中的 Google App Engine 中实现 Comet/Server 推送?
6 回答
我们刚刚宣布了使用 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
目前,我会排除在 App Engine(任何语言)中做 Comet。Comet 基于长寿命的 HTTP 连接,App Engine 最多会在大约 30 秒左右使任何单个连接超时;很难想象有更糟糕的比赛!
Comet(或类似的东西 - XMPP API)在谷歌应用引擎路线图上。现在,远离。
30秒绰绰有余;无论哪种方式,当时间过去并且没有新事件发生时,您都应该返回一个无操作消息。
这可以防止客户端超时,并且由所有做彗星的人来完成。
只需发送请求,并在服务器上使其等待 25 秒后发生事件或超时。
查看 App Engine 1.3.8-pre 版本,我看到了 Channel API 服务存根和更多代码。所以看起来我们可以在本地开始尝试了。
自 12 月 2 日起,Google App Engine 支持使用 Channel API 进行服务器推送。