docs: def dataReceived(self, data):
  
          """
              Takes "data" which we assume is json encoded
              If data has a subject_id attribute, we pass that to the dispatcher
              as the subject_id so it will get carried through into any
              return communications and be identifiable to the client
  
              falls back to just passing the message along...
  
          """
          try:
              address = self.guid
              data = json.loads(data)
              threads.deferToThread(send_signal, self.dispatcher, data)
  
              if 'hx_subscribe' in data:
                  return self.dispatcher.subscribe(self.transport, data)
  
              if 'address' in data:
                  address = data['address']
              else:
                  address = self.guid
  
              self.dispatcher.send(address, data)
  
          except Exception as e:
              raise
              self.dispatcher.send(
                  self.guid,
                  {'message': data, 'error': str(e)}
              )