import zmq from tfw.config import tfwenv from tfw.networking.zmq_connector_base import ZMQConnectorBase from tfw.networking.serialization import serialize_all, deserialize_all class SolvableConnector(ZMQConnectorBase): def __init__(self, zmq_context=None): super(SolvableConnector, self).__init__(zmq_context) self._zmq_req_socket = self._zmq_context.socket(zmq.REQ) self._zmq_req_socket.bind('tcp://*:{}'.format(tfwenv.CONTROLLER_PORT)) def send(self, key, message): self._zmq_req_socket.send_multipart(serialize_all(key, message)) def recv(self): return deserialize_all(*self._zmq_req_socket.recv_multipart())