RobotHardware-UESTC/Hardware/UPbot-Tools/pypibot/proxy.py

39 lines
945 B
Python

from pypibot import log
import threading
import zmq
class MqProxy:
def __init__(self, sub_addr, pub_addr):
self.thd = None
self.sub_addr = sub_addr
self.pub_addr = pub_addr
def _run(self):
context = zmq.Context()
frontend = context.socket(zmq.XSUB)
frontend.bind(self.sub_addr)
# frontend.bind("tcp://*:5556")
backend = context.socket(zmq.XPUB)
backend.bind(self.pub_addr)
# backend.bind("tcp://*:5557")
try:
zmq.proxy(frontend, backend)
except KeyboardInterrupt:
pass
frontend.close()
backend.close()
context.term()
def start(self):
if self.thd is None:
log.i("mq proxy starting...")
self.thd=threading.Thread(target=self._run, name="proxy")
self.thd.setDaemon(True)
self.thd.start()
def stop(self):
pass