擅长:python、mysql、java
<p>您需要为<code>loop.run_until_complete</code>提供一个协同程序。为此,您可以将接收代码包装到异步函数中:</p>
<pre class="lang-py prettyprint-override"><code>async def receive_message():
return await asyncio.wait_for(ws.recv(), timeout=10)
loop.run_until_complete(receive_message())
</code></pre>
<p>下面是一个完整的工作代码:</p>
<pre class="lang-py prettyprint-override"><code>import asyncio
import websockets
URI = "ws://0.0.0.0:8765"
TIMEOUT = 2
async def create_ws():
return await websockets.connect(URI)
async def receive_message():
ws = await create_ws()
print("Connected")
message = await asyncio.wait_for(ws.recv(), timeout=TIMEOUT)
print(f"Received message in less than {TIMEOUT} seconds: {message}")
if __name__ == "__main__":
asyncio.get_event_loop().run_until_complete(receive_message())
</code></pre>