Comet, нет не пробовали? У меня работает, переподключаться, правда все равно приходится, но таймаут можно сделать и 3 минуты, играет роль, только при разрыве соединения одной из сторон, когда вторая сторона этого не опознает. Все данные приходят моментально! Можнт держать и миллион соединений одновременно.
Реальзацию comet для вашего фреймворка ищем в гугле по слову comet + <фреймворк>
У меня примерно так:
from twisted.internet import reactor
class MyRequestHandler(web.RequestHandler):
@web.asynchronous
def get(self):
self.write("Processing your request...")
reactor.callLater(5, self.do_something)
def do_something(self):
self.finish("done!")