code: def on_data(self, raw_data):
          
          try:
              data = json.loads(raw_data)
          except ValueError:
              logger.error('value error: %s' % raw_data)
              return
  
          unique_id = data.get('id')
  
          if self._error_handler(data, unique_id):
              return False
  
          operation = data['op']
          if operation == 'connection':
              self._on_connection(data, unique_id)
          elif operation == 'status':
              self._on_status(data, unique_id)
          elif operation in ['mcm', 'ocm']:
              # historic data does not contain unique_id
              if self.stream_unique_id not in [unique_id, 'HISTORICAL']:
                  logger.warning('Unwanted data received from uniqueId: %s, expecting: %s' %
                                 (unique_id, self.stream_unique_id))
                  return
              self._on_change_message(data, unique_id)
docs: Called when raw data is received from connection.
          Override this method if you wish to manually handle
          the stream data
  
          :param raw_data: Received raw data
          :return: Return False to stop stream and close connection