Как я могу реализовать Comet/Server push в Google App Engine на Python?
Внедрение Comet/Server push в Google App Engine на Python
Ответы (6)
Мы только что объявили о Channel API для отправки комет с приложениями App Engine: http://googleappengine.blogspot.com/2010/05/app-engine-at-google-io-2010.html
Если вы работаете в Google IO, я расскажу об этом завтра в 13:00 (на треке 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
В настоящее время я бы исключил использование Comet в App Engine (на любом языке). Comet основан на долгоживущих HTTP-соединениях, и App Engine истечет время ожидания любого отдельного соединения примерно через 30 секунд или около того; Хуже матча трудно себе представить!
Comet (или что-то подобное — XMPP API) находится в дорожной карте Google App Engine. А пока держись подальше.
http://code.google.com/appengine/docs/roadmap.html
30 секунд более чем достаточно; в любом случае вы должны вернуть сообщение об отсутствии операций, когда время истекло, а новые события не произошли.
Это предотвращает тайм-ауты клиента и делается всеми, кто использует comet.
Просто отправьте запрос, а на сервере сделайте так, чтобы он ждал события или тайм-аута через 25 секунд.
Заглянув внутрь предварительной версии App Engine 1.3.8, я вижу заглушку службы Channel API и дополнительный код. Так что, похоже, мы можем начать пробовать это локально.
Google App Engine поддерживает отправку на сервер с помощью Channel API со 2 декабря.