mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-03 09:45:22 +03:00
Protect callback method
This commit is contained in:
parent
d2e461396f
commit
cc524eb813
@ -372,18 +372,26 @@ class FrigateMqttClient:
|
|||||||
self.client.connect(self.mqtt_config.host, self.mqtt_config.port, 60)
|
self.client.connect(self.mqtt_config.host, self.mqtt_config.port, 60)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Unable to connect to MQTT server: {e}")
|
logger.error(f"Unable to connect to MQTT server: {e}")
|
||||||
raise
|
self.client = None
|
||||||
|
return
|
||||||
|
|
||||||
self.client.loop_start()
|
self.client.loop_start()
|
||||||
self.set_initial_topics()
|
self.set_initial_topics()
|
||||||
|
|
||||||
def publish(self, topic: str, payload, retain: bool = False) -> None:
|
def publish(self, topic: str, payload, retain: bool = False) -> None:
|
||||||
|
"""Wrapper for publishing when client is in valid state."""
|
||||||
if not self.client:
|
if not self.client:
|
||||||
logger.error(f"Unable to publish to {topic}: client is not connected")
|
logger.error(f"Unable to publish to {topic}: client is not connected")
|
||||||
return
|
return
|
||||||
|
|
||||||
self.client.publish(topic, payload, retain=retain)
|
self.client.publish(topic, payload, retain=retain)
|
||||||
|
|
||||||
|
def add_topic_callback(self, topic: str, callback) -> None:
|
||||||
|
if not self.client:
|
||||||
|
return
|
||||||
|
|
||||||
|
self.client.message_callback_add(topic, callback)
|
||||||
|
|
||||||
|
|
||||||
class MqttSocketRelay:
|
class MqttSocketRelay:
|
||||||
def __init__(self, mqtt_client: FrigateMqttClient, topic_prefix: str):
|
def __init__(self, mqtt_client: FrigateMqttClient, topic_prefix: str):
|
||||||
@ -449,7 +457,7 @@ class MqttSocketRelay:
|
|||||||
|
|
||||||
self.websocket_server.manager.broadcast(ws_message)
|
self.websocket_server.manager.broadcast(ws_message)
|
||||||
|
|
||||||
self.mqtt_client.client.message_callback_add(f"{self.topic_prefix}/#", send)
|
self.mqtt_client.add_topic_callback(f"{self.topic_prefix}/#", send)
|
||||||
|
|
||||||
self.websocket_thread.start()
|
self.websocket_thread.start()
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user