예제 #1
0
    def reconnect(self,
                  socket_type,
                  service_name,
                  service_port=None,
                  service_type=None):
        self.context = None
        self.socket = None
        self.stream = None
        self.heartbeat_received = None

        if not service_type:
            service_type = socket_type_to_service(socket_type)
        rr = bonjour_utilities.resolve(service_type, service_name)
        if not rr:
            # TODO raise error or wait ??
            return

        self.context = zmq.Context()
        self.socket = self.context.socket(socket_type)
        self.stream = ZMQStream(self.socket)
        connection_str = "tcp://%s:%s" % (rr[1], rr[2])
        self.socket.connect(connection_str)

        # re-register the subscriptions
        for topic in self.topic_callbacks.keys():
            self._subscribe_topic(topic)

        # And set the callback
        self.stream.on_recv(self._topic_callback_wrapper)
예제 #2
0
    def reconnect(self, socket_type, service_name, service_port=None, service_type=None):
        self.context = None
        self.socket = None
        self.stream = None
        self.heartbeat_received = None

        if not service_type:
            service_type = socket_type_to_service(socket_type)
        if isinstance(service_name, (list, tuple)):
            rr = [None, service_name[0], service_name[1]]
        else:
            rr = bonjour_utilities.resolve(service_type, service_name)
            #print ("DEBUG: bonjour_utilities.resolve(%s, %s) returned %s" % (service_type,service_name,rr))
        if not rr:
            # TODO raise error or wait ??
            return

        self.context = zmq.Context()
        self.socket = self.context.socket(socket_type)
        self.socket.setsockopt(zmq.IDENTITY, self.identity)
        self.stream = ZMQStream(self.socket)
        connection_str =  "tcp://%s:%s" % (rr[1], rr[2])
        #print("DEBUG: reconnect connection_str=%s (service_type=%s)" % (connection_str, service_type))
        self.socket.connect(connection_str)

        # re-register the subscriptions
        if socket_type == zmq.SUB:
            for topic in self.topic_callbacks.keys():
                self._subscribe_topic(topic)

        # And set the callback
        self.stream.on_recv(self._topic_callback_wrapper)
예제 #3
0
    def reconnect(self, socket_type, service_name, service_port=None, service_type=None):
        self.context = None
        self.socket = None
        self.stream = None
        self.heartbeat_received = None

        if not service_type:
            service_type = socket_type_to_service(socket_type)
        rr = bonjour_utilities.resolve(service_type, service_name)
        if not rr:
            # TODO raise error or wait ??
            return

        self.context = zmq.Context()
        self.socket = self.context.socket(socket_type)
        self.stream = ZMQStream(self.socket)
        connection_str =  "tcp://%s:%s" % (rr[1], rr[2])
        self.socket.connect(connection_str)

        # re-register the subscriptions
        for topic in self.topic_callbacks.keys():
            self._subscribe_topic(topic)

        # And set the callback
        self.stream.on_recv(self._topic_callback_wrapper)