pao-aop-server
Version:
基于pao-aop的服务端框架
167 lines • 5.02 kB
TypeScript
/// <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