def message_updates(self, request):
user = request.session['user_session']
conn = get_connect_amqp(chat_log)
ch = conn.channel()
def new_message_ready(msg):
self.re_format = re.compile('\n|\r\n')
self.user_message[msg.delivery_info['consumer_tag']] =
msg.body
self.user_event[msg.delivery_info['consumer_tag']].set()
ch.basic_ack(msg.delivery_tag)
ename = 'exchange_%s' % user.id
qname = 'queue_%s' % session.session_id
ch.queue_declare(queue=qname, durable=True, exclusive=False,
auto_delete=False)
ch.exchange_declare(ename, type="fanout", durable=True,
auto_delete=False)
ch.queue_bind(queue=qname, exchange=ename)
tag = ch.basic_consume(queue=qname,
callback=new_message_ready, no_ack=False)
self.user_message[tag] = ''
self.user_event[tag] = Event()
ch.wait()
self.user_event[tag].wait()
result = self.user_message[tag]
del self.user_event[tag]
del self.user_message[tag]
ch.basic_cancel(tag)
проблема отловить момент когда пользователь со стороны браузера
разрывает соединение и
сбросить события
я так понимаю libevent-http не обрабатывает закрытие соединения, может
у кого нить есть идея как это обойти
заранее спасибо