如何在Python中使用websocket apis?

时间:2017-08-07 13:39:49

标签: python python-3.x websocket

我想使用以下websocket weather api

我尝试调整following examples但是我没有到达任何地方。

[actions.GET_USER](context, id) {
        return UserRepository.load(id);
    }

如何在Python中使用websocket apis?那是如何获得恒定的天气信息流?

1 个答案:

答案 0 :(得分:1)

似乎缺少api_key参数:

来自SmartWeather documentation

  • 的WebSocket

    • 打开websocket连接
    • wss://ws.weatherflow.com/swd/data?api_key=20c70eae-e62f-4d3b-b3a4-8586e90f3ac8

    • 通过websocket连接发送JSON消息,开始侦听演示设备的观察结果。发送此消息后,您连接的websocket客户端每分钟都会收到一条新的观察JSON消息。

    • { "type":"listen_start", "device_id":1110, "id":"random-id-12345" }

我使用以下代码:

import asyncio
import websockets

async def hello():
    async with websockets.connect('wss://swd.weatherflow.com/swd/data?api_key=20c70eae-e62f-4d3b-b3a4-8586e90f3ac8') as websocket:
        await websocket.send('{"type":"listen_start", "device_id":1110,"id": "2098388936"}')
        greeting = await websocket.recv()
        print(greeting)

asyncio.get_event_loop().run_until_complete(hello())

请注意,根据文档,此API密钥是为了快速入门。请勿在您的应用程序中使用此密钥。