【发布时间】:2017-11-17 17:43:47
【问题描述】:
免责声明:这是我第一次使用 WS 和 MQTT,因此结构可能有误。请指出这一点。
我正在使用带有 asyncio 的 autoban 通过 websockets 接收和发送消息到 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?
我在 WebSocketClientProtocol 子类上找到了使用 self.factory 执行此操作的 Autobahn - Twisted 示例,但这不适用于 asyncio。
【问题讨论】:
标签: websocket python-asyncio autobahn