编程语言
首页 > 编程语言> > python-Stomp.py如何从侦听器返回消息

python-Stomp.py如何从侦听器返回消息

作者:互联网

我已经阅读了以下主题: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})

标签:stomp,python,django
来源: https://codeday.me/bug/20191121/2054938.html