コード例 #1
0
ファイル: context.py プロジェクト: nybx/ledgerx-python
def generate_server_sockets(keypair, context):
    """\
    Generate a server and a publisher secure sockets.
    """
    server_sock = secure_socket(router_socket, keypair.private, keypair.public, ctx=context)
    server_sock.bind(settings.EXCHANGE_ENDPOINT)

    publisher_sock = secure_socket(pub_socket, keypair.private, keypair.public, ctx=context)
    publisher_sock.bind(settings.EXCHANGE_PUBLISHER_ENDPOINT)

    return (server_sock, publisher_sock)
コード例 #2
0
ファイル: context.py プロジェクト: nybx/ledgerx-python
    def _run_device(self):
        try:
            self.jobs = []
            self.thpool = futures.ThreadPoolExecutor(max_workers=1)
            self.client_sock = secure_socket(
                dealer_socket, self.private_key, self.public_key, self.server_key, self.context
            )
            self.client_sock.monitor(self.state_endpoint)
            self.client_sock.connect(settings.EXCHANGE_ENDPOINT)

            self.client_state_sock = pair_socket(self.context)
            self.client_state_sock.connect(self.state_endpoint)

            self.publisher_sock = secure_socket(
                sub_socket, self.private_key, self.public_key, self.server_key, self.context
            )
            self.publisher_sock.connect(settings.EXCHANGE_PUBLISHER_ENDPOINT)
            self.publisher_sock.subscribe = b""

            self.cmd_sock = router_socket(self.context)
            self.cmd_sock.bind(self.cmd_endpoint)

            self.poller = zmq.Poller()
            self.poller.register(self.client_sock, zmq.POLLIN)
            self.poller.register(self.client_state_sock, zmq.POLLIN)
            self.poller.register(self.publisher_sock, zmq.POLLIN)
            self.poller.register(self.cmd_sock, zmq.POLLIN)

            # Context's I/O loop
            self.__io_loop()

        except:
            logger.exception("error occurred in context I/O loop")

        finally:
            self.client_sock.close()
            self.client_state_sock.close()
            self.publisher_sock.close()
            self.cmd_sock.close()
            self.thpool.shutdown()