gpt4 book ai didi

python - 使用 Python+Stomp.py 和 ActiveMQ 发送/接收图像

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:24 27 4
gpt4 key购买 nike

我正在尝试通过 ActiveMQ 使用 python + stomp.py 发送/接收图像。它从内存中的图像开始,从前端上传。一个脚本将其发送到 AMQ,另一个脚本从那里接收、写入文件并将链接返回到前端。

但是出了点问题 - 导致文件不显示图片。包含接收到的图像的文件几乎与原始图像的大小相同,仅大 3-4 KB。但它没有显示任何内容。

我不知道发生了什么...AMQ 是否在带有图像数据的消息中添加了一些内容,或者什么?有什么想法吗?

听众类别代码:

class MyListener(object):
msglist = []

def __init__(self):
self.msglist = []

def on_error(self, headers, message):
self.msglist.append('<[ERROR]> ' + message)

def on_message(self, headers, message):
self.msglist.append(message)

发送 IMG 消息代码:

if request.FILES.get('image2send'):
img = request.FILES['image2send']
conn = stomp.Connection()
conn.set_listener('', MyListener())
conn.start()
conn.connect()
conn.send(body=' '.join(img), destination='/queue/test_img', headers={'persistent': 'true'})
time.sleep(2)
conn.disconnect()

接收 IMG 消息代码:

lst = MyListener()
conn = stomp.Connection()
conn.set_listener('', lst)
conn.start()
conn.connect()
conn.subscribe(destination='/queue/test_img', id=1, ack='auto')
time.sleep(2)
conn.disconnect()
if len(lst.msglist) > 0:
dest = open(MEDIA_ROOT + 'amq_getpic/thepic.png', 'wb+')
dest.write(lst.msglist[0])
dest.close()

最佳答案

问题出在发送 IMG 消息代码中。

原始字符串:

conn.send(body=' '.join(img),
destination='/queue/test_img',
headers={'persistent': 'true'})

已修复:

conn.send(body=''.join(img),
destination='/queue/test_img',
headers={'persistent': 'true'})

发送的正文字符串中的空格正在损坏文件

关于python - 使用 Python+Stomp.py 和 ActiveMQ 发送/接收图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23103402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com