@huolala-tech/page-spy-lynx
Version:
An SDK of PageSpy for debugging Lynx app
45 lines (44 loc) • 2.24 kB
TypeScript
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;