♻️ add default timeout

This commit is contained in:
StarHeartHunt
2026-04-19 19:53:19 +08:00
parent b62c0b9a54
commit ed8b7b2baf
4 changed files with 52 additions and 1 deletions

View File

@@ -46,6 +46,7 @@ from nonebot.internal.driver import (
Timeout,
TimeoutTypes,
)
from nonebot.log import logger
from nonebot.utils import UNSET, UnsetType, exclude_unset
try:
@@ -328,6 +329,12 @@ class Mixin(HTTPClientMixin, WebSocketClientMixin):
if setup.ping_interval is not UNSET:
autoping = setup.ping_interval is not None
if isinstance(setup.timeout, Timeout) and setup.timeout.ping is not UNSET:
logger.warning(
"aiohttp driver does not expose a separate ping timeout; "
"the configured ping timeout will be ignored."
)
async with aiohttp.ClientSession(version=version, trust_env=True) as session:
async with session.ws_connect(
setup.url,

View File

@@ -103,6 +103,7 @@ class Mixin(WebSocketClientMixin):
{
"open_timeout": open_timeout,
"close_timeout": DEFAULT_TIMEOUT.close,
"ping_timeout": DEFAULT_TIMEOUT.ping,
}
)

View File

@@ -23,7 +23,7 @@ class Timeout:
ping: float | None | UnsetType = UNSET
DEFAULT_TIMEOUT = Timeout(total=None, connect=5.0, read=30.0, close=10.0)
DEFAULT_TIMEOUT = Timeout(total=None, connect=5.0, read=30.0, close=10.0, ping=20.0)
RawURL: TypeAlias = tuple[bytes, bytes, int | None, bytes]