Websocket 自动生成异步IO客户端参数
免责声明:这是我第一次使用WS和MQTT,所以结构可能是错误的。请指出这一点 我使用autoban和asyncio通过WebSocket接收消息并将消息发送到HA(HomeAssistant)实例 一旦python代码接收到消息,我希望使用MQTT将它们转发到AWS IoT服务。这种交流需要双向进行 我已经将此工作作为一个脚本,其中所有内容都在一个文件中浮动。 我试图在班级结构中完成这项工作,这就是我最后的工作将如何完成 为此,我需要我的WebSocketClientProtocol访问AWSIoTClientWebsocket 自动生成异步IO客户端参数,websocket,python-asyncio,autobahn,Websocket,Python Asyncio,Autobahn,免责声明:这是我第一次使用WS和MQTT,所以结构可能是错误的。请指出这一点 我使用autoban和asyncio通过WebSocket接收消息并将消息发送到HA(HomeAssistant)实例 一旦python代码接收到消息,我希望使用MQTT将它们转发到AWS IoT服务。这种交流需要双向进行 我已经将此工作作为一个脚本,其中所有内容都在一个文件中浮动。 我试图在班级结构中完成这项工作,这就是我最后的工作将如何完成 为此,我需要我的WebSocketClientProtocol访问AWSI
.publish
和.subscribe
。虽然WebSocketClientProtocol初始化是通过工厂完成的,但因此我不知道如何向它传递任何参数。例如:
if __name__ == "__main__":
aws_iot_client = AWSIoTClient(...)
factory = WebSocketServerFactory('ws://localhost:8123/api/websocket')
factory.protocol = HomeAssistantProtocol
如何将aws_iot_客户端传递给HomeAssistantProtocol
我在WebSocketClientProtocol子类中找到了使用
self.factory
实现这一点的Autobahn-Twisted示例,但这对asyncio不可用。我发现调用run\u直到\u完成返回传输,协议
实例,这样我就可以将AWS客户端传递给它
loop = asyncio.get_event_loop()
coro = loop.create_connection(factory, '127.0.0.1', 9000)
transport, protocol = loop.run_until_complete(coro)