code: def forwarder(frontend, backend):
      
      try:
          context = zmq.Context()
  
          front_sub = context.socket(zmq.SUB)
          front_sub.bind("tcp://*:%d" % frontend)
  
          front_sub.setsockopt_string(zmq.SUBSCRIBE, "")
  
          back_pub = context.socket(zmq.PUB)
          back_pub.bind("tcp://*:%d" % backend)
  
          print("forwarder started, backend on port : %d\tfrontend on port: %d" % (backend, frontend))
          zmq.proxy(front_sub, back_pub)
      except Exception as e:
          print(e)
      finally:
          front_sub.close()
          back_pub.close()
          context.term()
docs: Simple pub/sub forwarder
  
      :param int frontend: fontend zeromq port
      :param int backend: backend zeromq port