Stomp.py cómo devolver un mensaje del oyente

Ya leí este tema: Stomp.py devuelve el mensaje del oyente

Pero todavía no entiendo cómo funciona esto, y ¿por qué no hay manera de recuperar un mensaje del objeto stomp, o el oyente directamente?

Si puedo enviar un mensaje a través del método de envío, y si puedo recibir un mensaje con un método de escucha on_message, ¿por qué no puedo devolver ese mensaje a mi función original, por lo que podría devolverlo a la interfaz?

Así que si tengo:

class MyListener(object): def on_error(self, headers, message): print '>>> ' + message def on_message(self, headers, message): print '>>> ' + message 

¿Cómo podría devolver un mensaje desde el método on_message?

¿O podría hacerlo de alguna manera después de las conn.subscribe (…)?

Ok, yo encontré un camino yo mismo. Todo lo que tienes que hacer, es un ligero cambio de la clase de oyente:

 class MyListener(object): msg_list = [] def __init__(self): self.msg_list = [] def on_error(self, headers, message): self.msg_list.append('(ERROR) ' + message) def on_message(self, headers, message): self.msg_list.append(message) 

Y en el código, donde usas stomp.py:

 conn = stomp.Connection() lst = MyListener() conn.set_listener('', lst) conn.start() conn.connect() conn.subscribe(destination='/queue/test', id=1, ack='auto') time.sleep(2) messages = lst.msg_list conn.disconnect() return render(request, 'template.html', {'messages': messages})