次のエラーが発生しました:
ERROR asyncio:base_events.py:1608 Exception in callback _SelectorSocketTransport._read_ready()
コードのこの時点で発生します。基本的に、タイムアウト中にタスクを実行できませんでした。
"""Wait for the single Future or coroutine to complete, with timeout.
Coroutine will be wrapped in Task.
Returns result of the Future or coroutine. When a timeout occurs,
it cancels the task and raises TimeoutError. To avoid the task
cancellation, wrap it in shield().
If the wait is cancelled, the task is also cancelled.
This function is a coroutine.
"""
if loop is None:
loop = events.get_event_loop()
if timeout is None:
return await fut
if timeout <= 0:
fut = ensure_future(fut, loop=loop)
if fut.done():
return fut.result()
fut.cancel()
raise futures.TimeoutError()
waiter = loop.create_future()
timeout_handle = loop.call_later(timeout, _release_waiter, waiter)
cb = functools.partial(_release_waiter, waiter)
fut = ensure_future(fut, loop=loop)
fut.add_done_callback(cb)
try:
# wait until the future completes or the timeout
try:
await waiter
except futures.CancelledError:
fut.remove_done_callback(cb)
fut.cancel()
raise
if fut.done():
return fut.result()
else:
fut.remove_done_callback(cb)
# We must ensure that the task is not running
# after wait_for() returns.
# See https://bugs.python.org/issue32751
await _cancel_and_wait(fut, loop=loop)
> raise futures.TimeoutError()
E concurrent.futures._base.TimeoutError
../../.pyenv/versions/3.7.3/lib/python3.7/asyncio/tasks.py:423: TimeoutError
最後に、これにより接続が閉じられます。
async def ensure_open(self) -> None:
"""
Check that the WebSocket connection is open.
Raise :exc:`~websockets.exceptions.ConnectionClosed` if it isn't.
"""
# Handle cases from most common to least common for performance.
if self.state is State.OPEN:
# If self.transfer_data_task exited without a closing handshake,
# self.close_connection_task may be closing the connection, going
# straight from OPEN to CLOSED.
if self.transfer_data_task.done():
await asyncio.shield(self.close_connection_task)
raise self.connection_closed_exc()
else:
return
if self.state is State.CLOSED:
> raise self.connection_closed_exc()
E websockets.exceptions.ConnectionClosedError: code = 1011 (unexpected error), no reason
../../.pyenv/versions/3.7.3/envs/evse-test-stand/lib/python3.7/site-packages/websockets/protocol.py:803: ConnectionClosedError
私がやろうとしていることについてもう少し説明します: 私は基本的に、組み込みシステムの websocket を介してサーバーに接続しようとします。
タイムアウト値を変更しましたが、役に立ちませんでした。私は websocket がどのように機能するかというトピックについては初めてなので、調査した後、なぜそれが起こっているのかを実際に知ることができませんでした。
助けていただければ幸いです:)