code: def start(self, block=True):
          
          if self._state == INIT:
              if not any(self.on_message.receivers_for(blinker.ANY)):
                  raise RuntimeError('no receivers connected to on_message')
  
              self.logger.debug('starting %s...', self.name)
              self._state = RUNNING
              self.query_nsqd()
  
              if self.lookupds:
                  self.query_lookupd()
                  self._killables.add(self._workers.spawn(self._poll_lookupd))
  
              self._killables.add(self._workers.spawn(self._poll_ready))
  
          else:
              self.logger.warn('%s already started', self.name)
  
          if block:
              self.join()
docs: Start discovering and listing to connections.