def __init__(self, **kwargs): self.id = kwargs.get("id", None) self.type = kwargs.get("type") self.source = kwargs.get("source") self.target = kwargs.get("target") self.timestamp = kwargs.get("timestamp", date_time_utils.timestamp()) self.data = kwargs.get("data", {}) self.received_timestamp = kwargs.get("received_timestamp", None)
def parse_message(self, message_body): message_json = json.loads(message_body) now = date_time_utils.timestamp() #Required fields id = message_json["id"] source = message_json['source'] type = message_json['type'] #Optional fields target = message_json.get('target') timestamp = message_json.get('timestamp', now) received_timestamp = message_json.get('received_timestamp', now) data = message_json.get('data', {}) return Message(id=id, source=source, type=type, target=target, data=data, timestamp=timestamp, received_timestamp=received_timestamp)
def __init__(self, mqtt_host, mqtt_port, mqtt_topic="messagebus"): self.logger = logging.getLogger(__name__) self.subscriptions = [] self.counter = date_time_utils.timestamp() self._thread_constructor = threading.Thread self.logger.debug("Message bus initialized") self.mqtt_client = mqtt.Client(client_id="messagebus-backend", clean_session=False) self.mqtt_host = mqtt_host self.mqtt_port = mqtt_port self.mqtt_topic = mqtt_topic self.mqtt_client.on_connect = self.on_connect self.mqtt_client.on_disconnect = self.on_disconnect self.mqtt_client.on_message = self.on_message self.mqtt_client.on_subscribe = self.on_subscribe self.connected = False