目录
当前位置: 首页 > 文档资料 > aiohttp 中文文档 >

WebSocket 工具类

优质
小牛编辑
128浏览
2023-12-01

class aiohttp.WSCloseCode
   一个保留关闭消息码的整数枚举类。
   OK
       正常结束,表示目标连接已经成功建立。

   GOING_AWAY
       表示服务器正在关闭或浏览器已离开页面。

   PROTOCOL_ERROR
       表示由于协议错误引起的终止连接。

   UNSUPPORTED_DATA
       表示因接收到不能接受到的数据类型引起的终止连接。(比如只能接受文本的端口却接受了二进制消息)

   INVALIED_TEXT
       表示因接受到的数据中含有不能理解的消息类型引起的终止连接。(如在文本消息中出现非UTF-8编码的内容)

   POLICY_VIOLATION
       表示因接收到的信息违反规定引起的终止连接。如果没有合适的状态码会返回通用状态码(比如unsupported_datamessage_too_big)。

    MESSAGE_TOO_BIG
       表示因接受的消息(数量)太大引起的终止连接。

    MANDATORY_EXTENSION
       表示因客户端期望与服务器协商更多的扩展类型但服务器没用在响应消息中回复此类内容引起的终止连接。扩展列表需要在Close帧中的/reason/部分显示。注意该状态码不会被服务器端使用,因为此状态码已代表WebSocket握手失败。

    INTERNAL_ERROR
       表示服务器端因遇到一个期望之外的错误无法完成请求而引起的终止连接。

    SERVICE_RESTART
       服务重启。客户端需要重新连接,如果确定重连需要等5-30S不等的时间。

    TRY_AGAIN_LATER
       服务过载。客户端需要连接到不同的IP地址(如果有的话)或尝试重新连接。

class aiohttp.WSMsgType
    描述WSMessage类型的整数枚举(IntEnum)类。

    CONTINUATION
       用于连接帧的标记,用户不会收到此消息类型。

    TEXT
       文本消息,值为字符串。

    BINARY
       二进制类型,值为字节码。

    PING
       代表Ping帧(由客户端发送)。

    PONG
       代表Pong帧,用于回复ping。由服务器发送。

    CLOSE
       代表Close帧。

    CLOSED FRAME
       不是一个帧,只是一个代表websocket已被关闭的标志。

    ERROR
       不是一个帧,只是一个代表websocket接受到一个错误的标志。

class aiohttp.WSMessage
    WebSocket信息,由 .receive()调用得到。
   type(类型)
       消息类型,是一个WSMsgType实例对象。

   data(数据)
       消息载体。
       1. WSMsgType.TEXT消息的类型为str
       2. WSMsgType.BINARY消息的类型为bytes
       3. WSMsgType.CLOSE消息的类型为WSCloseCode
       4.WSMsgType.PING消息的类型为bytes
       5. WSMsgType.PONG消息的类型为bytes

    extra
       额外信息,类型为字符串。
       只对WSMsgType.CLOSE消息有效,内容包含可选的消息描述。

    json(*, loads=json.loads)
       返回已解析的JSON数据。
       新增于0.22版本。
       参数: loads - 自定义JSON解码函数。

    tp
       不赞成使用的type别名函数。
       1.0版本后不再建议使用。

信号

信号是一个包含注册过的异步回调函数的列表。
信号的生命周期有两个阶段: 在信号的内容被标准列表操作所填充之后: sig.append()之类的。
第二个是sig.freeze()调用之后,在这之后信号会被冻结: 添加,删除和丢弃回调函数都是被禁止的。
唯一可做的就是调用之前已经注册过的回调函数: await sig.send(data)

更多实用例子请看aiohttp.web中的信号章节。

class aiohttp.Signal
    信号组件,具有collections.abc.MutableSequence接口。

    coroutine send(*args, **kwargs)
       从列表头部开始逐个调用已注册的回调函数。

    frozen
      如果 freeze()被调用过则为True。该属性只读。

    freeze()
       冻结列表。在这之后所有内容均不允许改动。