【问题标题】:How to run forever async websocket client?如何永远运行异步 websocket 客户端?
【发布时间】:2019-04-19 01:07:10
【问题描述】:

我正在尝试将 websocket 用于客户端。客户端发送一些开始消息,之后,无论何时发送或不发送,他都可以接收消息。客户端是异步的,我从 doc 获得了一些代码,但我不知道我的生活在做什么。

async def wsrun(uri):
    async with websockets.connect(uri) as websocket:
        await websocket.send('hey')
        print(await websocket.recv()) # Starts receive things, not only once

asyncio.get_event_loop().run_until_complete(wsrun('wss://localhost:1515'))

问题是,websocket recv 只显示服务器发送的第一件事:(

【问题讨论】:

    标签: python asynchronous websocket


    【解决方案1】:

    虽然我对你的生活无能为力,但试试这个:

    async def wsrun(uri):
        async with websockets.connect(uri) as websocket:
            await websocket.send('hey')
            while True:
                print(await websocket.recv()) # Starts receive things, not only once
    
    asyncio.get_event_loop().run_until_complete(wsrun('wss://localhost:1515'))
    

    【讨论】:

    • 谢谢@drum 先生。我认为它的工作原理:v。但是现在我遇到了一个问题,我正在创建一个与我的聊天集成的不和谐机器人。呜呜呜。当我“运行”不和谐时,代码挂起,所以 websocket 没有初始化,当我初始化我的 websocket 时,它手不和谐没有初始化。在另一个线程中运行异步“任务”没有意义,是吗?
    • 算了。我设法让它工作。也再次感谢您的提示 xD
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    相关资源
    最近更新 更多