UNPKG

@huolala-tech/page-spy-lynx

Version:

An SDK of PageSpy for debugging Lynx app

45 lines (44 loc) 2.24 kB
import { SocketStoreBase, SocketState, SocketWrapper } from '@huolala-tech/page-spy-base'; /** 适配 PageSpy SocketWrapper,在 Lynx 中优先使用原生 WebSocket,必要时回退到全局 WebSocket。 */ export declare class LynxWebSocketWrapper extends SocketWrapper { /** 原生连接 ID;使用标准 WebSocket 时为空。 */ socketId: string | null; /** 标准 WebSocket 实例;使用原生模块时为空。 */ socketInstance: WebSocket | null; private readyState; private nativeEventPollTimer; private nativeTerminalConfirmTimer; private nativeOpenedAt; /** 初始化连接,优先走 NativeModules.LynxNativeWebSocketModule。 */ init(url: string): void; /** 发送数据,自动区分标准 WebSocket 与原生模块通道。 */ send(data: string): void; /** 关闭当前连接,并更新内部 readyState。 */ close(): void; /** 获取当前连接状态,标准 WebSocket 直接读取实例 readyState。 */ getState(): SocketState; /** 使用运行时自带 WebSocket 建立连接。 */ private initRuntimeWebSocket; /** 启动原生事件轮询,连接中高频轮询,连接后降低轮询频率。 */ private startNativeEventPolling; /** 清理原生事件轮询定时器。 */ private clearNativeEventPolling; /** 清理 Android 终止事件确认定时器。 */ private clearNativeTerminalConfirm; /** 处理原生 WebSocket 事件,并转成 SocketWrapper 标准事件。 */ private handleNativeEvent; /** Android 刚 open 后可能立即上报误判终止事件,这里延迟确认一次。 */ private handleNativeTerminalEvent; /** 真正应用 close/error 终止事件并释放原生连接状态。 */ private applyNativeTerminalEvent; } /** PageSpy WebSocket Store 的 Lynx 版本,使用上方 wrapper 接管连接实现。 */ export declare class LynxWebSocketStore extends SocketStoreBase { protected socketWrapper: LynxWebSocketWrapper; onOffline(): void; constructor(); /** 初始化前先确认当前 Lynx 运行时具备 WebSocket 能力。 */ init(url: string): Promise<void>; } declare const socketStore: LynxWebSocketStore; export default socketStore;