我已经阅读过这个话题: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(...)??
之后以某种方式这样做答案 0 :(得分:3)
好的,我自己找到了一种方法。您所要做的就是对听众类略有改动:
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})