类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → WebSocket类。
类型名必须写完整「WebSocket类」。声明时自动创建,一般无需再调 创建*。
硬约束
- 类型名必须写「WebSocket类」。
- 支持客户端 ws/wss 与服务端启动/广播(以方法表为准)。
- 事件回调勿长时间阻塞 UI。
快速开始
WebSocket类 ws
// 连接 / 发文本 / 事件:见下方命令介绍
WebSocket类/创建
共 1 条。
创建WebSocket
- 签名:
通用 创建WebSocket() - 说明:创建一个 WebSocket 会话。一般直接写「WebSocket类 ws」即可(声明时自动创建);「创建WebSocket()」仅在需要显式赋值时使用。
WebSocket类/事件
共 10 条。
客户进入
- 签名:
无 客户进入(子程序指针 回调) - 说明:注册「连接建立」回调;传 0 清除。(推荐名;旧名「连接成功」)
- 参数一│子程序指针 回调: 形参固定为: 函数 名(整数 连接ID, 文本 IP, 整数 端口, 文本 IP端口) · 客户端:仅异步 连接() 成功时触发;连接ID 固定为 1;IP/端口为连接目标。 · 服务端:每个客户端握手成功触发一次;连接ID 从 1 递增。
连接成功
- 签名:
无 连接成功(子程序指针 回调) - 说明:同「客户进入」(兼容旧名)。形参已升级为带 IP/端口。
- 参数一│子程序指针 回调: 形参同 客户进入。
连接失败
- 签名:
无 连接失败(子程序指针 回调) - 说明:注册「异步连接失败」回调;传 0 清除。仅 连接() 失败时触发。
- 参数一│子程序指针 回调: 形参固定为:函数 名(文本 原因)。 仅 连接()(异步)失败时触发;连接_同步 失败看返回值与 取错误()。
数据到达
- 签名:
无 数据到达(子程序指针 回调) - 说明:注册「收到文本帧」回调;传 0 清除。(推荐名;旧名「消息到达」)
- 参数一│子程序指针 回调: 形参固定为: 函数 名(整数 连接ID, 文本 IP, 整数 端口, 文本 IP端口, 文本 数据)
消息到达
- 签名:
无 消息到达(子程序指针 回调) - 说明:同「数据到达」(兼容旧名)。
- 参数一│子程序指针 回调: 形参同 数据到达。
数据到达字节集
- 签名:
无 数据到达字节集(子程序指针 回调) - 说明:注册「收到二进制帧」回调;传 0 清除。(推荐名;旧名「消息到达字节集」)
- 参数一│子程序指针 回调: 形参固定为: 函数 名(整数 连接ID, 文本 IP, 整数 端口, 文本 IP端口, 字节集 数据)
消息到达字节集
- 签名:
无 消息到达字节集(子程序指针 回调) - 说明:同「数据到达字节集」(兼容旧名)。
- 参数一│子程序指针 回调: 形参同 数据到达字节集。
客户离开
- 签名:
无 客户离开(子程序指针 回调) - 说明:注册「连接关闭」回调;传 0 清除。(推荐名;旧名「连接关闭」)
- 参数一│子程序指针 回调: 形参固定为: 函数 名(整数 连接ID, 文本 IP, 整数 端口, 文本 IP端口, 整数 状态码, 文本 原因)
连接关闭
- 签名:
无 连接关闭(子程序指针 回调) - 说明:同「客户离开」(兼容旧名)。
- 参数一│子程序指针 回调: 形参同 客户离开。
心跳超时
- 签名:
无 心跳超时(子程序指针 回调) - 说明:注册「心跳超时」回调;传 0 清除。需先 置心跳。客户端与服务端均适用。
- 参数一│子程序指针 回调: 形参固定为: 函数 名(整数 连接ID, 文本 IP, 整数 端口, 文本 IP端口) · 服务端超时后会踢掉该连接,并随后触发 客户离开。
WebSocket类/属性
共 10 条。
超时
- 签名:
整数 超时 - 说明:当前超时毫秒数(无括号属性读,等价 取超时())。
错误信息
- 签名:
文本 错误信息 - 说明:最近失败原因(无括号属性读)。
URL
- 签名:
文本 URL - 说明:最近一次连接 URL。
是否已连接
- 签名:
逻辑 是否已连接 - 说明:是否仍保持已握手连接。
是否连接中
- 签名:
逻辑 是否连接中 - 说明:异步连接是否进行中。
子协议
- 签名:
文本 子协议 - 说明:当前/协商到的子协议。
关闭码
- 签名:
整数 关闭码 - 说明:最近一次关闭状态码。
关闭原因
- 签名:
文本 关闭原因 - 说明:最近一次关闭原因文本。
最大帧长
- 签名:
整数 最大帧长 - 说明:单帧最大字节数。
TLS
- 签名:
逻辑 TLS - 说明:服务端是否已启用 TLS(等价 是否TLS())。
WebSocket类/方法
共 59 条。
置超时
- 签名:
无 置超时([整数 毫秒=30000]) - 说明:设置连接/收发超时(毫秒)。
- 参数一│[整数 毫秒=30000]: >0 生效;≤0 时回退为 30000。
取超时
- 签名:
整数 取超时() - 说明:取当前超时(毫秒)。
启动
- 签名:
逻辑 启动(整数 端口, [文本 绑定地址="0.0.0.0"]) - 说明:启动 WebSocket 服务端监听。明文 ws;wss 须先 置TLS(真) 并 置TLS证书。
- 参数一│整数 端口: 1~65535。
- 参数二│[文本 绑定地址=”0.0.0.0”]: 本机联调常用 127.0.0.1。
监听
- 签名:
逻辑 监听(整数 端口, [文本 绑定地址="0.0.0.0"]) - 说明:同「启动」(兼容旧名)。
停止
- 签名:
无 停止() - 说明:停止监听并断开全部客户端。
停止监听
- 签名:
无 停止监听() - 说明:同「停止」。
关闭全部
- 签名:
无 关闭全部() - 说明:断开全部已连接客户端,但继续监听新连接(≠ 停止)。
断开
- 签名:
无 断开(整数 连接ID) - 说明:踢掉指定客户端。
- 参数一│整数 连接ID: 来自 客户进入/数据到达。
置最大客户端数
- 签名:
无 置最大客户端数([整数 上限=0]) - 说明:限制服务端同时在线客户端数;超限拒绝新接入。须在 启动 前设置。
- 参数一│[整数 上限=0]: 0=不限制;>0 为最大连接数。
取最大客户端数
- 签名:
整数 取最大客户端数() - 说明:取最大客户端数上限;0 表示不限制。
置路径
- 签名:
无 置路径([文本 路径=""]) - 说明:服务端握手路径白名单。空=不限制;多路径用; 分隔(如 “/chat;/ws”)。须在 启动 前。
- 参数一│[文本 路径=”“]: 请求路径(不含查询串);空=允许任意路径。
取路径
- 签名:
文本 取路径() - 说明:取当前握手路径白名单配置。
置允许来源
- 签名:
无 置允许来源([文本 来源列表=""]) - 说明:服务端 Origin 白名单。空=不校验;”*”=任意;多来源用; 分隔。须在 启动 前。
- 参数一│[文本 来源列表=”“]: 如 “https://www.yddphp.cn;http://127.0.0.1:8080”。 空=不检查 Origin 头;非空时 Origin 必须命中其一(大小写不敏感)。
取允许来源
- 签名:
文本 取允许来源() - 说明:取当前 Origin 白名单配置。
广播
- 签名:
整数 广播(文本 数据) - 说明:向全部已握手客户端发文本帧;返回成功个数。
广播字节集
- 签名:
整数 广播字节集(字节集 数据) - 说明:向全部客户端发二进制帧。
是否在监听
- 签名:
逻辑 是否在监听() - 说明:服务端是否正在监听。
是否已启动
- 签名:
逻辑 是否已启动() - 说明:同「是否在监听」。
取端口
- 签名:
整数 取端口() - 说明:服务端监听端口。
取绑定地址
- 签名:
文本 取绑定地址() - 说明:服务端绑定地址。
取客户端数
- 签名:
整数 取客户端数() - 说明:当前已握手客户端数量。
取连接ID列表
- 签名:
通用 取连接ID列表() - 说明:全部客户端连接 ID。
置请求头
- 签名:
逻辑 置请求头(文本 名, 文本 值) - 说明:设置握手请求头(须在 连接 前)。
- 参数一│文本 名: 头字段名。
- 参数二│文本 值: 头字段值。
删除请求头
- 签名:
逻辑 删除请求头(文本 名) - 说明:删除已设置的握手请求头。
- 参数一│文本 名: 头字段名。
清空请求头
- 签名:
无 清空请求头() - 说明:清空全部自定义握手请求头。
置子协议
- 签名:
无 置子协议([文本 协议=""]) - 说明:设置 Sec-WebSocket-Protocol(须在 连接 前)。
- 参数一│[文本 协议=”“]: 子协议名;空文本表示不协商。
取子协议
- 签名:
文本 取子协议() - 说明:取当前/协商到的子协议。
置心跳
- 签名:
无 置心跳([整数 间隔毫秒=30000], [整数 超时毫秒=10000]) - 说明:设置心跳。间隔≤0 关闭。客户端:空闲检测;服务端:定时发真实 Ping,超时踢连接并触发 心跳超时。
- 参数一│[整数 间隔毫秒=30000]: 心跳间隔;≤0 关闭。
- 参数二│[整数 超时毫秒=10000]: 等待 Pong/活动超时;≤0 回退 10000。
置最大帧长
- 签名:
无 置最大帧长([整数 字节=1048576]) - 说明:单帧最大字节数(防超大帧)。
- 参数一│[整数 字节=1048576]: 默认 1MB;≤0 回退 1MB。
取最大帧长
- 签名:
整数 取最大帧长() - 说明:取单帧最大字节数。
置代理
- 签名:
无 置代理(文本 地址, [文本 账号=""], [文本 密码=""]) - 说明:设置 HTTP 代理(须在 连接 前)。
- 参数一│文本 地址: 如 127.0.0.1:7890。
- 参数二│[文本 账号=”“]: 代理账号,可省略。
- 参数三│[文本 密码=”“]: 代理密码,可省略。
置TLS验证
- 签名:
无 置TLS验证([逻辑 验证=真]) - 说明:wss 客户端是否验证服务端证书(默认真)。
- 参数一│[逻辑 验证=真]: 假=不验证(仅测试环境)。
置TLS
- 签名:
无 置TLS([逻辑 启用=真]) - 说明:服务端启用 TLS(wss)。须再 置TLS证书;客户端连 wss:// 无需此方法。
- 参数一│[逻辑 启用=真]: 真=握手前先做 TLS。
置TLS证书
- 签名:
逻辑 置TLS证书(文本 证书文件, [文本 密码=""]) - 说明:服务端加载 PFX/P12 证书(wss)。
- 参数一│文本 证书文件: PFX/P12 路径。
- 参数二│[文本 密码=”“]: 证书密码。
置TLS根证书
- 签名:
逻辑 置TLS根证书(文本 根证书文件) - 说明:服务端校验客户端证书时用的根证书(DER/CER);配合 置TLS要求客户端证书。
- 参数一│文本 根证书文件: DER/CER 路径。
置TLS要求客户端证书
- 签名:
无 置TLS要求客户端证书([逻辑 要求=真], [逻辑 验证=真]) - 说明:服务端要求客户端证书(mTLS)。
- 参数一│[逻辑 要求=真]: 是否要求客户端证书。
- 参数二│[逻辑 验证=真]: 是否用根证书/系统信任链校验。
是否TLS
- 签名:
逻辑 是否TLS() - 说明:服务端是否已 置TLS(真)(与 TCP类 对齐)。客户端连 wss 不看此值。
置TLS主机名
- 签名:
无 置TLS主机名(文本 主机名) - 说明:wss SNI/证书校验用的主机名。
- 参数一│文本 主机名: 如 api.example.com。
连接
- 签名:
逻辑 连接(文本 URL或主机, [整数 端口=0], [整数 加密=0]) - 说明:异步连接。1 参=完整 ws/wss URL;≥2 参=主机+端口(加密≠0 用 wss,默认路径 /)。
- 参数一│文本 URL或主机: 完整 URL,或仅主机名/IP。 参数二│[整数 端口=0]: 与主机联用;省略或 0 时须用完整 URL。 参数三│[整数 加密=0]: 非 0 则 wss://。
连接_同步
- 签名:
逻辑 连接_同步(文本 URL或主机, [整数 端口=0], [整数 加密=0]) - 说明:阻塞连接至握手成功或超时。重载同「连接」(URL 或 主机+端口)。
- 参数同「连接」。
发送
- 签名:
逻辑 发送([整数 连接ID], 文本 数据) - 说明:发送文本帧。服务端传连接ID;客户端省略连接ID只传文本。
- 参数一│[整数 连接ID]: 服务端必填;客户端省略。
- 参数二│文本 数据: 要发送的文本(客户端作参数一)。
发送字节集
- 签名:
逻辑 发送字节集([整数 连接ID], 字节集 数据) - 说明:发送二进制帧。服务端传连接ID;客户端省略。
- 参数一│[整数 连接ID]: 服务端必填;客户端省略。
- 参数二│字节集 数据: 原始数据(客户端作参数一)。
发送Ping
- 签名:
逻辑 发送Ping([整数 连接ID], [字节集 载荷]) - 说明:发送 Ping 控制帧。服务端须带连接ID;客户端无参(WinHTTP 占位,兼容保留)。
- 参数一│[整数 连接ID]: 服务端目标连接;客户端省略。
- 参数二│[字节集 载荷]: 可选;服务端可只传连接ID。
接收
- 签名:
文本 接收() - 说明:同步等待下一条文本消息(配合 连接_同步)。
接收字节集
- 签名:
字节集 接收字节集() - 说明:同步等待下一条二进制消息。
关闭
- 签名:
无 关闭([整数 状态码=1000], [文本 原因=""]) - 说明:主动关闭连接(发送 Close 帧)。
- 参数一│[整数 状态码=1000]: WebSocket 关闭码,默认 1000 正常关闭。
- 参数二│[文本 原因=”“]: 关闭原因,可省略。
重置
- 签名:
无 重置() - 说明:关闭并恢复默认(超时等);不清回调。
是否已连接
- 签名:
逻辑 是否已连接() - 说明:是否仍保持已握手连接。
是否连接中
- 签名:
逻辑 是否连接中() - 说明:异步 连接 是否仍在进行。
取URL
- 签名:
文本 取URL() - 说明:取最近一次连接 URL。
取远程IP
- 签名:
文本 取远程IP() - 说明:取连接目标主机(URL 解析缓存;同 取客户IP)。
取远程端口
- 签名:
整数 取远程端口() - 说明:取连接目标端口(同 取客户端口)。
取远程地址
- 签名:
文本 取远程地址() - 说明:取「主机:端口」(同 取客户地址)。
取客户IP
- 签名:
文本 取客户IP([整数 连接ID]) - 说明:取对端 IP。服务端传连接ID;客户端省略(同 取远程IP)。
- 参数一│[整数 连接ID]: 服务端;客户端可省略。
取客户端口
- 签名:
整数 取客户端口([整数 连接ID]) - 说明:取对端端口。服务端传连接ID;客户端省略。
- 参数一│[整数 连接ID]: 服务端;客户端可省略。
取客户地址
- 签名:
文本 取客户地址([整数 连接ID]) - 说明:取「IP:端口」。服务端传连接ID;客户端省略。
- 参数一│[整数 连接ID]: 服务端;客户端可省略。
取错误
- 签名:
文本 取错误() - 说明:取最后一次失败原因;也可用属性 ws.错误信息。
取关闭码
- 签名:
整数 取关闭码() - 说明:取最近一次关闭状态码。
取关闭原因
- 签名:
文本 取关闭原因() - 说明:取最近一次关闭原因文本。
易错对照
| 错误 | 正确 |
|---|---|
| 类型写成 WebSocket | 必须「WebSocket类」 |