2.9 KiB
2.9 KiB
WebSocket
使用 HTTP/1 升级,连接随创建任务或服务 handler 结束而关闭。不支持 HTTP/2 升级、子协议或压缩。
dever.websocket.Limits
限制完整消息、接收等待和写入期限。
字段:
message_bytes:完整消息字节上限idle_ms:一次接收的毫秒期限write_ms:写入和握手的毫秒期限
dever.websocket.Message
协议引擎交付完整消息;Ping 和 Pong 最多 125 字节。
分支:
Text(value: Text):文本Binary(value: Bytes):二进制Ping(value: Bytes):保活请求Pong(value: Bytes):保活响应
dever.websocket.ConnectResult
WebSocket 连接或协议升级的结果。
分支:
Connected(socket: dever.system.WebSocket):已连接error Failed(message: Text):连接失败
dever.websocket.ReceiveState
区分完整消息与正常关闭。
分支:
Read(message: Message):完整消息End:正常关闭
dever.websocket.ReceiveResult
接收操作的显式捕获结果。
分支:
Done(state: ReceiveState):接收状态error Failed(message: Text):接收失败
dever.websocket.SystemReceiveResult
系统边界结果在库内转换为公开接收状态。
分支:
Read(message: Message):完整消息End:正常关闭error Failed(message: Text):接收失败
dever.websocket.MessageEvent
流在故障时产生一次失败后结束。
分支:
Read(message: Message):完整消息error Failed(message: Text):终止失败
dever.websocket.defaultLimits
默认消息 1 MiB、接收 60 秒、写入与握手 5 秒。
dever.websocket.accept
只升级当前 HTTP/1.1 请求。失败时仍可回复普通 HTTP 响应;handler 退出关闭所有 socket 别名。
dever.websocket.connect
连接数字 IP 和 origin-form 路径,不自动重试。
dever.websocket.open
支持 ws/wss 和 DNS;WSS 校验证书和目标名称,拒绝用户信息及 fragment。 未声明端口时使用协议默认端口;显式端口非法时在连接前报错。
dever.websocket.connected
取出 WebSocket;连接失败时继续传播错误。
dever.websocket.send
发送一次完整消息;方向锁与写入共用期限,已开始写帧的取消会关闭连接。
dever.websocket.wrote
消息发送成功时继续执行,失败时传播错误。
dever.websocket.receive
按需读取协议帧,先回复 Ping 再交付应用;接收超时关闭资源。
dever.websocket.receiveState
正常关闭映射为 End,协议失败保持 ReceiveResult 身份。
dever.websocket.messages
惰性消费消息;正常关闭结束,终止故障只产生一次 Failed;关闭流释放源别名。
dever.websocket.close
校验关闭码和至多 123 UTF-8 字节原因,并在写期限内等待对端关闭。
dever.websocket.closed
关闭成功时继续执行,失败时传播错误。