refactor: BaseProtocol/Connecter 由 abc 改为 typing.Protocol,统一接口风格

This commit is contained in:
snowy-yang committed 2026-09-24 22:40:29 +08:00
1 parent feb39b11d5
commit 1d9f509b25
2 files changed
+5 -8

No files matched your search

+2 -4
View File
@@ -16,9 +16,8 @@
""" """
import asyncio import asyncio
from abc import ABC, abstractmethod
from time import monotonic from time import monotonic
from typing import cast from typing import Protocol, cast
import aiohttp import aiohttp
import ujson import ujson
@@ -34,10 +33,9 @@ from .session import Session
from .token import AccessToken from .token import AccessToken
class Connecter(ABC): class Connecter(Protocol):
"""连接适配器接口:两种接入方式都实现 `run()` 常驻运行。""" """连接适配器接口:两种接入方式都实现 `run()` 常驻运行。"""
@abstractmethod
async def run(self) -> None: ... async def run(self) -> None: ...
+3 -4
View File
@@ -7,19 +7,18 @@ HELLO/READY/INVALID_SESSION/op=13 这类协议帧在适配器内就地处理,
与 `webhook_protocol.py`。 与 `webhook_protocol.py`。
""" """
from abc import ABC, abstractmethod from typing import Any, Protocol
from typing import Any
from .model import Payload from .model import Payload
class BaseProtocol(ABC): class BaseProtocol(Protocol):
"""适配器专有的协议处理器:实现方返回需要回送的响应体。""" """适配器专有的协议处理器:实现方返回需要回送的响应体。"""
@abstractmethod
async def on_frame(self, payload: Payload) -> Payload | dict[str, Any] | None: async def on_frame(self, payload: Payload) -> Payload | dict[str, Any] | None:
"""处理一条帧,返回需回送的响应体(无需回送则 None)。 """处理一条帧,返回需回送的响应体(无需回送则 None)。
IDENTIFY/RESUME 等握手应答、op=13 验证应答都经返回值回送;业务事件 IDENTIFY/RESUME 等握手应答、op=13 验证应答都经返回值回送;业务事件
(op=0)不必处理,连接器会照常入队分发。 (op=0)不必处理,连接器会照常入队分发。
""" """
...