我已经阅读了以下主题:Stomp.py return message from listener
但是我仍然不知道它是如何工作的,为什么没有办法从stomp对象或直接从侦听器中检索消息?
如果我可以通过send方法发送消息,并且可以通过on_message侦听器方法接收消息,为什么我不能将该消息返回到原始函数,所以可以将其返回到前端?
所以,如果我有:
class MyListener(object):
def on_error(self, headers, message):
print '>>> ' + message
def on_message(self, headers, message):
print '>>> ' + message
如何从on_message方法返回消息?
或者我可以在conn.subscribe(…)之后以某种方式做到这一点?
解决方法:
好吧,我自己找到了一条路.您需要做的只是侦听器类的稍作更改:
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)
在代码中,您使用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})