跳转至

DG-Lab 本地终端

WebSocketMessageQueue module-attribute

WebSocketMessageQueue = Queue[WebSocketMessage]

DGLabLocalClient

DGLabLocalClient(client_id: UUID4, sender: Callable[[WebSocketMessage], Coroutine[Any, Any, Any]], queue_setter: Callable[[UUID4, WebSocketMessageQueue], Any], max_queue: int = 2 ** 5)

Bases: DGLabClient

DG-Lab 终端,并不实际发送 WebSocket 消息,而是直接与本地服务端进行通信

本地服务端指同一线程下的 DGLabWSServer

Parameters:

Name Type Description Default
client_id UUID4

终端 ID

required
sender Callable[[WebSocketMessage], Coroutine[Any, Any, Any]]

用于客户端发送消息的回调函数

required
queue_setter Callable[[UUID4, WebSocketMessageQueue], Any]

回调函数,用于服务端设置客户端的消息队列

required
max_queue int

消息队列最大长度

2 ** 5
Source code in pydglab_ws/client/local.py
30
31
32
33
34
35
36
37
38
39
40
41
def __init__(
        self,
        client_id: UUID4,
        sender: Callable[[WebSocketMessage], Coroutine[Any, Any, Any]],
        queue_setter: Callable[[UUID4, WebSocketMessageQueue], Any],
        max_queue: int = 2 ** 5
):
    super().__init__()
    self._client_id = client_id
    self._send_callable = sender
    self._message_queue: WebSocketMessageQueue = asyncio.Queue(max_queue)
    queue_setter(client_id, self._message_queue)