擅长:python、mysql、java
<p>Python中有两个常见的websocket模块。
虽然<a href="https://websockets.readthedocs.io/en/stable/intro.html" rel="nofollow noreferrer">websockets</a>是用<code>import websockets</code>导入的,但也有<a href="https://pypi.org/project/websocket-client/" rel="nofollow noreferrer">websocket-client</a>是用<code>import websocket</code>导入的</p>
<p>这两个模块提供几乎相同的API,其中<code>ws.recv()</code>允许接收数据</p>
<p>这些模块彼此如此相似的事实可能会导致混淆,这至少会导致我的异常</p>
<p><strong>虽然<em>websockets</em>能够进行异步操作,但<em>websocket</em>却不能。这意味着我的声明</p>
<pre><code>loop.run_until_complete(asyncio.wait_for(ws.recv(), timeout=10))
</code></pre>
<p>仅适用于<em>websockets</em>,如果与<em>websocket</em>一起使用,则例外</p>
<blockquote>
<p>An asyncio.Future, a coroutine or an awaitable is required</p>
</blockquote>
<p>将会发生</p>