docs: def _setup(self):
          """
          starts/instantiates the messaging
          """
          self._close_sockets()
          create_n_conn = self._socket_factory.create_n_connect
  
          control_address = self.config['control_port']
          publish_address = self.config['chatter_publish_port']
          request_address = self.config['request_port']
          command_address = self.config['command_port']
  
          self._messaging_logger.control.info(' Address: %s', control_address)
          # NOTE: These sockets will exit the program to exit if there's an issue
          self.control_socket = create_n_conn(zmq.ROUTER,
                                              control_address,
                                              on_error='exit',
                                              bind=True,
                                              socket_name='control socket')
          self._messaging_logger.publish.info(' Address: %s', publish_address)
          # publish socket is an XSUB socket
          self.publish_socket = create_n_conn(zmq.XSUB,
                                              publish_address,
                                              bind=True,
                                              on_error='exit',
                                              socket_name='publish socket')
          self._messaging_logger.command.info(' Address: %s', command_address)
          # NOTE: these sockets will only log an error if there's an issue
          self.command_socket = create_n_conn(zmq.ROUTER,
                                              command_address,
                                              bind=True)
          self._messaging_logger.request.info(' Address: %s', request_address)
          self.request_socket = create_n_conn(zmq.DEALER,
                                              request_address,
                                              bind=True,
                                              socket_name='request socket')
  
          self._setup_subscription_socket()
          self._setup_scheduler()