Initial Dever 0.0.1

This commit is contained in:
Codex committed 2026-11-03 03:32:07 +00:00
commit 81233d098c
1479 files changed
+163782

No files matched your search

+112
View File
@@ -0,0 +1,112 @@
# 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
关闭成功时继续执行,失败时传播错误。