/// /// /// /// /** * @description websocket 支持模块 * * 使用方法: * ```JavaScript * var ws = require('ws'); * ``` * 创建一个服务器: * ```JavaScript * var ws = require('ws'); * var http = require('http'); * * var svr = new http.Server(80, { * '/ws': ws.upgrade((conn, req) => { * conn.onmessage = e => console.log(e.data); * }) * }); * svr.start(); * ``` * 使用 WebSocket 客户端: * ```JavaScript * var ws = require('ws'); * * var conn = new ws.Socket('ws://127.0.0.1/ws'); * conn.onmessage = e => console.log(e.data); * ``` * */ declare module 'ws' { /** * @description 指定 websocket 消息类型 0,代表一个继续帧 */ export const CONTINUE: 0; /** * @description 指定 websocket 消息类型 1,代表一个文本帧 */ export const TEXT: 1; /** * @description 指定 websocket 消息类型 2,代表一个二进制帧 */ export const BINARY: 2; /** * @description 指定 websocket 消息类型 8,连接关闭 */ export const CLOSE: 8; /** * @description 指定 websocket 消息类型 9,代表一个 ping 帧 */ export const PING: 9; /** * @description 指定 websocket 消息类型 10,代表一个 pong 帧 */ export const PONG: 10; /** * @description 指定 WebSocket 状态,表示正在连接中 */ export const CONNECTING: 0; /** * @description 指定 WebSocket 状态,表示打开状态 */ export const OPEN: 1; /** * @description 指定 WebSocket 状态,表示已发送 CLOSE 消息,等待关闭中 */ export const CLOSING: 2; /** * @description 指定 WebSocket 状态,表示已经关闭 */ export const CLOSED: 3; /** * @description 创建一个 websocket 消息对象,参见 WebSocketMessage */ const Message: typeof Class_WebSocketMessage; /** * @description WebSocket 对象,参见 WebSocket */ const Socket: typeof Class_WebSocket; /** * @description 创建一个 websocket 协议处理器,从 http 接收 upgrade 请求并握手,生成 WebSocket 对象 * ``` * @param accept 连接成功处理函数,回调将传递两个参数,第一个参数为接收到的 WebSocket 对象,第二个参数为握手时的 HttpRequest 对象 * @return 返回协议处理器,可与 HttpServer, Chain, Routing 等对接 * */ function upgrade(accept: (...args: any[])=>any): Class_Handler; /** * @description 创建一个 websocket 协议处理器,从 http 接收 upgrade 请求并握手,生成 WebSocket 对象 * opts 包含请求的附加选项,支持的内容如下: * ```JavaScript * { * "perMessageDeflate": true, // 指定是否支持压缩,缺省支持 * "maxPayload": 67108864 // 指定最大数据包尺寸,缺省为 67108864 * } * ``` * @param opts 连接选项,缺省是 {} * @param accept 连接成功处理函数,回调将传递两个参数,第一个参数为接收到的 WebSocket 对象,第二个参数为握手时的 HttpRequest 对象 * @return 返回协议处理器,可与 HttpServer, Chain, Routing 等对接 * */ function upgrade(opts: FIBJS.GeneralObject, accept: (...args: any[])=>any): Class_Handler; }