mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-29 15:23:56 +08:00
refactor: introduce transport-neutral connection runtime
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Any, List
|
||||
|
||||
|
||||
class MessageProcessor(ABC):
|
||||
"""消息处理器接口。返回 True 表示已处理并中止后续处理。"""
|
||||
|
||||
@abstractmethod
|
||||
async def process(self, context: Any, transport: Any, message: Any) -> bool:
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class MessagePipeline:
|
||||
"""责任链式消息处理管道。"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
self._processors: List[MessageProcessor] = []
|
||||
|
||||
def add_processor(self, processor: MessageProcessor) -> None:
|
||||
self._processors.append(processor)
|
||||
|
||||
async def process_message(self, context: Any, transport: Any, message: Any) -> None:
|
||||
for processor in self._processors:
|
||||
handled = await processor.process(context, transport, message)
|
||||
if handled:
|
||||
return
|
||||
Reference in New Issue
Block a user