# WS Checker `type: ws` 用于 WebSocket 服务可达性检查和消息交互验证。 ## 配置项 | 字段 | 说明 | 必填 | 默认值 | | -------------------- | ---------------------------------------------- | ---- | ------- | | `ws.url` | 目标 URL,必须以 `ws://` 或 `wss://` 开头 | 是 | 无 | | `ws.headers` | 握手 HTTP 头 | 否 | `{}` | | `ws.subprotocols` | 子协议协商 | 否 | `[]` | | `ws.ignoreSSL` | 忽略 TLS 证书校验 | 否 | `false` | | `ws.send` | 发送的 text 消息,配置后进入请求-响应模式 | 否 | 无 | | `ws.receiveTimeout` | 等待响应超时,毫秒 | 否 | `5000` | | `ws.maxMessageBytes` | 单条消息最大字节数,支持 `KB`、`MB`、`GB` 单位 | 否 | `4KB` | ## expect 校验项 | 字段 | 说明 | 必填 | 默认值 | | ------------------ | --------------------------------------------------------------------- | ---- | ------ | | `connected` | 期望连接结果,`true` 可达或 `false` 期望不可达 | 否 | `true` | | `handshakeHeaders` | 握手响应头校验,使用 `KeyedExpectations` | 否 | 无 | | `message` | 收到的消息内容校验,使用 `ContentExpectations` 数组,需配置 `ws.send` | 否 | 无 | | `connectTimeMs` | 连接建立耗时校验,使用 `ValueMatcher` | 否 | 无 | | `durationMs` | 完整执行耗时校验,使用 `ValueMatcher` | 否 | 无 | ## 两种模式 不配置 `ws.send` 时只做可达性检查(连接后立即关闭),配置 `ws.send` 后进入请求-响应模式(发送消息并等待首条响应)。 ## 示例 可达性检查: ```yaml - id: "ws-reachability" name: "WebSocket 服务可达" type: ws ws: url: "wss://api.example.com/ws" expect: durationMs: lte: 3000 ``` 带鉴权的请求-响应: ```yaml - id: "ws-echo" name: "WebSocket Echo 检查" type: ws ws: url: "wss://echo.example.com/ws" headers: Authorization: "Bearer ${TOKEN}" subprotocols: ["json"] send: '{"action":"ping"}' receiveTimeout: 3000 expect: handshakeHeaders: Sec-WebSocket-Protocol: equals: "json" message: - json: path: "$.action" equals: "pong" durationMs: lte: 5000 ``` 期望不可达: ```yaml - id: "ws-internal-down" name: "内部服务已下线" type: ws ws: url: "ws://internal.monitor:9443/ws" expect: connected: false ```