UNPKG

pao-aop-server

Version:

基于pao-aop的服务端框架

167 lines 5.02 kB
/// <reference types="node" /> import * as TCP from 'net'; import { BaseAddon, RecallFunctionList, RecallFunction } from 'pao-aop'; import { SocketServer } from '../net/socket'; import { ServiceInfo, BaseService } from '../base/index'; /** * TCP设备 * @description 支持TCP/IP的设备 */ export declare class SocketDevice extends BaseAddon { /** 设备ID */ deviceID?: string; /** 套接字 */ socket?: TCP.Socket; /** 回调函数列表 */ recallFunctionList?: RecallFunctionList; /** * 发送消息 * @param message 消息 * @param returnFunctionID 消息命令 * @param timeout 超时 * @param checkToSend 发送前的检查函数 * @returns 命令返回Promise */ sendMessage?<T>(message: string | Buffer, returnFunctionID?: any, timeout?: number, timeoutCheckBreak?: number): Promise<T>; /** * 发送数据 * @param deviceID 设备ID * @param data 数据 */ sendDataToSocket?(data: string | Buffer): void; /** * 处理接收数据 * @param data 数据 */ onReceivedData?(data?: Buffer): void; /** * 处理错误 * @param error 错误 */ onError?(error: any): void; } /** * Socket设备服务 * @description 提供Socket设备与云端通讯的服务 * @author pao */ export declare class SocketDeviceServer<T extends SocketDevice> extends SocketServer { /** 命令超时时间,默认为30秒 */ commandTimeout: number; /** * 设备服务列表 */ private deviceServices; protected onCreateDevice?: () => T; protected onDeviceStart?: (device: T, socket: TCP.Socket) => void; start?(): void; setDeviceService(deviceServices: ServiceInfo[]): void; /** * 连接建立 * @param socket 套接 */ onConnected?(socket: TCP.Socket): void; /** * 接收数据处理事件 * @param device 设备ID * @param data 数据 */ onReceivedData?(device: T, data?: Buffer): void; /** * 异常时的处理 * @param device 设备ID * @param error 错误 */ onError?(device: T, error?: any): void; protected getDeviceByName(deviceName: string): ServiceInfo; } /** * 基础设备服务 * @description 所有设备服务的基类,实现了物联网设备服务接口 * @author pao */ export declare class BaseDeviceService extends BaseService { /** 设备列表 */ protected deviceList?: Map<string, SocketDevice>; /** * 连接设备 * @param deviceID 设备ID */ connectDevice?(newDevice: SocketDevice): void; /** * 断开设备 * @param had_error 是否有错误 */ disconnectDevice?(deviceID: string, had_error: boolean): Promise<void>; /** * 事件: 有错误发生 * @param error 错误 */ setErrorToDevice?(deviceID: string, error: Error): void; /** * 发送服务消息 * @param message 消息 * @param returnFunctionID 返回消息ID * @param timeout 超时(单位:毫秒,如果小于或等于0,表示不设置超时) * @param timeoutCheckBreak 超时检查时间间隔(单位:毫秒) */ protected sendMessage?<T>(deviceID: string, message: string | Buffer, returnFunctionID?: any, timeout?: number, timeoutCheckBreak?: number): Promise<T>; /** * 根据设备ID获取设备 * @param deviceID 设备ID */ protected getDevice?(deviceID?: string): SocketDevice | undefined; /** * 回调函数列表是否为空 * @param deviceID 设备ID */ protected isRecallFunctionEmpty?(deviceID: string): boolean; /** * 获取回调函数 * @param deviceID 设备ID * @param functionID 命令ID */ protected getRecallFunction?(deviceID: string, functionID: any): RecallFunction; /** * 回调函数 * @param deviceID 设备ID * @param functionID 命令ID * @param returnData 返回数据 */ protected recallFunction?(deviceID: string, functionID: any, returnData?: any): void; /** * 接收数据 * @param deviceID 设备ID * @param data 数据 */ receiveData?(deviceID: string, data: Buffer): void; /** * AT命令到达 * @param deviceID 设备ID * @param data 数据 */ protected onCommandReceived?(deviceID: string, data: string): void; /** * 数据到达 * @param deviceID 设备ID * @param data 数据 */ protected onDataReceived?(deviceID: string, data: Buffer): void; /** * 设备错误 * @param deviceID 设备ID * @param data 数据 */ protected onDeviceError?(deviceID: string, error: Error): void; /** * 事件: 设备连接 * @param deviceID 设备ID */ protected onDeviceConnected?(deviceID: string): void; /** * 事件: 设备断开 * @param deviceID 设备ID */ protected onDeviceDisconnected?(deviceID: string): void; } //# sourceMappingURL=index.d.ts.map