kunpolibrary/libs/lib.wx.api.d.ts

153 lines
4.6 KiB
TypeScript
Raw Normal View History

2025-03-29 10:54:49 +08:00
/**
* @Author: Gongxh
* @Date: 2025-03-28
* @Description:
*/
declare namespace WechatMiniprogram {
type IAnyObject = Record<string, any>
interface ICommonCallBack {
/**
*
*/
success?: () => void;
/**
*
*/
fail?: () => void;
/**
*
*/
complete?: () => void;
}
interface ConnectSocketOption extends ICommonCallBack {
/** 开发者服务器 wss 接口地址 */
url: string
/** HTTP HeaderHeader 中不能设置 Referer */
header?: IAnyObject
/**
* : '1.4.0'
*
*/
protocols?: string[]
/**
* : '2.4.0'
* TCP TCP_NODELAY
*/
tcpNoDelay?: boolean
/**
* : '2.8.0'
*
*/
perMessageDeflate?: boolean
/**
* : '2.10.0'
*
*/
timeout?: number
/**
* : '2.29.0'
* 使
*/
forceCellularNetwork?: boolean
}
/**
* `2.10.4`
*
*/
interface SocketProfile {
/** 组件准备好使用 SOCKET 建立请求的时间,这发生在检查本地缓存之前 */
fetchStart: number;
/** DNS 域名查询开始的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等 */
domainLookupStart: number;
/** DNS 域名查询完成的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等 */
domainLookupEnd: number;
/** 开始建立连接的时间,如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接,则这里显示的是新建立的连接开始的时间 */
connectStart: number;
/** 完成建立连接的时间(完成握手),如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接则这里显示的是新建立的连接完成的时间。注意这里握手结束包括安全连接建立完成、SOCKS 授权通过 */
connectEnd: number;
/** 单次连接的耗时,包括 connect tls */
rtt: number;
/** 握手耗时 */
handshakeCost: number;
/** 上层请求到返回的耗时 */
cost: number;
}
interface SocketSendOption extends ICommonCallBack {
/** 需要发送的消息 */
data: string | ArrayBuffer;
}
interface SocketCloseOption extends ICommonCallBack {
/**
* 1000
*
*/
code?: number;
/**
*
* 123 UTF-8
*/
reason?: string;
}
interface SocketTask {
/**
*
* @param data
*/
send(res: SocketSendOption): void
/**
* WebSocket
* @param code
* @param reason
*/
close(res: SocketCloseOption): void
/**
* WebSocket
* @param listener
*/
onOpen(listener: (res: { header: IAnyObject, profile: SocketProfile }) => void): void
/**
* WebSocket
* @param listener
* @param res.data
*/
onMessage(listener: (res: { data: string | ArrayBuffer }) => void): void
/**
* WebSocket
* @param listener
* @param res.errMsg
*/
onError(listener: (res: { errMsg: string }) => void): void
/**
* WebSocket
* @param listener
* @param res.code
* @param res.reason
*/
onClose(listener: (res: { code: number, reason: string }) => void): void
}
interface Wx {
connectSocket(option: ConnectSocketOption): SocketTask
}
}
declare const wx: WechatMiniprogram.Wx