我正在编写一个电子应用程序,我想在其中接收通过ZeroMQ PUB / SUB模式从python后端发送的视频(网络摄像头视频)。我有一个使用python客户端接收器测试过的python服务器,可以正常工作。
我的python视频发布商
import base64
import cv2
import zmq
context = zmq.Context()
footage_socket = context.socket(zmq.PUB)
footage_socket.connect('tcp://localhost:5555')
camera = cv2.VideoCapture(0)
while True:
_, frame = camera.read()
frame = cv2.resize(frame, (640, 480))
_, buffer = cv2.imencode('.jpg', frame)
byte_buffer = base64.b64encode(buffer)
footage_socket.send(byte_buffer)
我曾尝试使用类似于zmq官方页面上的this one的简单订阅客户端在NodeJS中接收它,但似乎什么也没收到。
答案 0 :(得分:1)
问题在于在邮件中发送主题。当NodeJS包装器以字符串形式发送时,只有一个空白空格将主题和有效负载分隔开,因此没有看到该主题。为了正确发送消息主题,我必须使用 send_multipart 函数。
footage_socket.send_multipart([b"video", byte_buffer])