Отказ от ответственности: я впервые работаю с WS и MQTT, поэтому структура может быть неправильной. Пожалуйста, укажите это.
Я использую автобан с asyncio для получения и отправки сообщений в экземпляр HA (HomeAssistant) через веб-сокеты.
Как только мой код Python получит сообщения, я хочу перенаправить их с помощью MQTT в сервис AWS IoT. Это общение должно работать в обе стороны.
Я сделал эту работу как сценарий, в котором все плавает в файле. Я пытаюсь сделать эту работу в структуре класса, и именно так будет выполнена моя окончательная работа.
Для этого мне нужно, чтобы мой WebSocketClientProtocol имел доступ к AWSIoTClient .publish
и .subscribe
. Хотя инициализация WebSocketClientProtocol выполняется через фабрику, в результате я не уверен, как передать ему какие-либо аргументы. Например:
if __name__ == "__main__":
aws_iot_client = AWSIoTClient(...)
factory = WebSocketServerFactory('ws://localhost:8123/api/websocket')
factory.protocol = HomeAssistantProtocol
Как я могу передать aws_iot_client в HomeAssistantProtocol?
Я нашел примеры Autobahn-Twisted, которые делают это, используя self.factory
в подклассе WebSocketClientProtocol, но это недоступно для asyncio.