This commit is contained in:
Louis King
2025-12-03 21:16:38 +00:00
parent 9f64d5d0b5
commit 264dafbca5
2 changed files with 8 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
"""FastAPI dependencies for the API."""
import logging
import uuid
from typing import Annotated, Generator
from fastapi import Depends, Request
@@ -57,11 +58,13 @@ def get_mqtt_client(request: Request) -> MQTTClient:
mqtt_port = getattr(request.app.state, "mqtt_port", 1883)
mqtt_prefix = getattr(request.app.state, "mqtt_prefix", "meshcore")
# Use unique client ID to allow multiple API instances
unique_id = uuid.uuid4().hex[:8]
config = MQTTConfig(
host=mqtt_host,
port=mqtt_port,
prefix=mqtt_prefix,
client_id="meshcore-api",
client_id=f"meshcore-api-{unique_id}",
)
client = MQTTClient(config)

View File

@@ -13,6 +13,7 @@ import logging
import signal
import threading
import time
import uuid
from typing import Any, Callable, Optional, TYPE_CHECKING
from meshcore_hub.common.database import DatabaseManager
@@ -307,14 +308,15 @@ def create_subscriber(
Returns:
Configured Subscriber instance
"""
# Create MQTT client
# Create MQTT client with unique client ID to allow multiple collectors
unique_id = uuid.uuid4().hex[:8]
mqtt_config = MQTTConfig(
host=mqtt_host,
port=mqtt_port,
username=mqtt_username,
password=mqtt_password,
prefix=mqtt_prefix,
client_id="meshcore-collector",
client_id=f"meshcore-collector-{unique_id}",
)
mqtt_client = MQTTClient(mqtt_config)