UNPKG

yimultiscreenserver-sdk-web

Version:

YiMultiScreenServer SDK for Web

142 lines 7.75 kB
import { HTTPConfig } from "../config/HTTPConfig"; import { IHttpRequester } from "../core/http/IHttpRequester"; import { MQTTLogic } from "../core/mqtt/MQTTLogic"; import { IControllerMQTTCallback } from "../core/mqtt/impl/IControllerMQTTCallback"; import { BindDeviceAction } from "../core/mqtt/message/BindDeviceAction"; import { SessionAction } from "../core/mqtt/message/SessionAction"; import { CastError } from "../util/CastError"; import { AccountBindDeviceVO } from "../vo/account/AccountBindDeviceVO"; import { LoginUserVO } from "../vo/account/LoginUserVO"; import { CastProtocol } from "../vo/cast/CastProtocol"; import { CastSessionVO } from "../vo/cast/CastSessionVO"; import { CastType } from "../vo/cast/CastType"; import { ControllerDeviceType } from "../vo/device/ControllerDeviceType"; import { ControllerDeviceVO } from "../vo/device/ControllerDeviceVO"; import { DevicePair } from "../vo/device/DevicePair"; import { DisplayDeviceVO } from "../vo/device/DisplayDeviceVO"; import { P2PKeyVO } from "../vo/p2p/P2PKeyVO"; import { DisplayReportVO } from "../vo/report/DisplayReportVO"; import { IControllerCallback } from "./IControllerCallback"; import { SessionDestroyReason } from '../core/mqtt/message/SessionDestroyReason'; export declare class ControllerManager implements IControllerMQTTCallback { private readonly TAG; private readonly jsonParser; private readonly p2pKeyFromPeer; private readonly httpRequestExecutor; private readonly cache; private guid; private mqttLogic; private callback; constructor(); setGuid(guid: string): this; setCallback(callback: IControllerCallback): this; setHttpRequester(requester: IHttpRequester): this; setHttpConfig(config: HTTPConfig): this; setMQTTLib(mqtt: MQTTLogic): this; createControllerDevice(controllerDevice: ControllerDeviceVO): this; updateControllerType(type: ControllerDeviceType): this; updateNetwork(ip: string, gateway: string, mask: string): this; /** * 阻塞方法,控制终端给指定手机号发送注册/登录验证码 * 请使用Task调用,不需要在Task中进行await,因为函数结果是通过回调触发 * @param phoneNumber 手机号 */ requestVerifyCode(phoneNumber: string): Promise<boolean>; private subscribeAccountTopic; private unsubscribeAccountTopic; /** * 阻塞方法,控制终端通过手机号和短信验证码登录账号,如果账号不存在则自动注册 * 返回值为空意味着登录失败,请检查错误信息 * @param phoneNumber 手机号 * @param verifyCode 短信验证码 * @returns LoginUserVO | null 登录成功后返回用户信息,失败则返回null */ login(phoneNumber: string, verifyCode: string): Promise<LoginUserVO | null>; /** * 阻塞方法,控制终端登录账号后,将access token存储下来,每次启动如果本地有access token,则调用此方法 * 此方法如果未正常返回,则说明需要通过UI引导用户重新登录,刷新access token * 返回值为空意味着刷新失败,请检查错误信息 * @param accessToken: 控制端登录账号成功后拿到的唯一令牌 * @returns LoginUserVO | null 登录成功后返回用户信息,失败则返回null */ refresh(accessToken: string): Promise<LoginUserVO | null>; /** * 阻塞方法,控制终端登录账号后,退出登录此账号 * @param user: 已登录账号的用户信息 * @returns boolean 退出成功返回true,否则返回false */ logout(user: LoginUserVO): Promise<boolean>; /** * 阻塞方法,控制终端注销指定账号(已登录的账号) * @param user: 已登录账号的用户信息 * @returns boolean 注销成功返回true,否则返回false */ unRegister(user: LoginUserVO): Promise<boolean>; /** * 阻塞方法,控制终端登录账号后,获取此账号下所有已绑定的显示设备 * @param accessToken: 控制端登录账号成功后拿到的唯一令牌 * @returns AccountBindDeviceVO[] | null 已绑定的显示设备列表,失败则返回null */ getAllBoundDevices(accessToken: string): Promise<AccountBindDeviceVO[] | null>; /** * 阻塞方法,控制终端登录账号后,对指定显示终端与本账号建立绑定关系 * @param accessToken: 控制端登录账号成功后拿到的唯一令牌 * @param displayDeviceId 显示终端设备ID * @param alias 显示终端设备别名 * @returns AccountBindDeviceVO | null 绑定的显示设备,失败则返回null */ bindDisplay(displayDeviceId: string, alias: string, accessToken: string): Promise<AccountBindDeviceVO | null>; /** * 阻塞方法,控制终端登录账号后,对指定的已绑定的显示设备进行更新,更新其别名(UI展示名称) * @param accessToken: 控制端登录账号成功后拿到的唯一令牌 * @param alias 显示终端设备别名 * @param displayDeviceId 显示终端设备ID * @returns AccountBindDeviceVO | null 绑定的显示设备,失败则返回null */ updateBindDisplayAlias(displayDeviceId: string, alias: string, accessToken: string): Promise<AccountBindDeviceVO | null>; /** * 阻塞方法,控制终端登录账号后,解除指定显示终端与此账号之间的绑定关系 * @param accessToken: 控制端登录账号成功后拿到的唯一令牌 * @param displayDeviceId 显示终端设备ID * @returns 解除绑定成功返回true,失败则返回false */ unBindDisplay(displayDeviceId: string, accessToken: string): Promise<boolean>; connectDisplay(displayCode: number): Promise<DevicePair | null>; disconnectDisplay(displayCode: number): Promise<DisplayDeviceVO | null>; createCastSession(castType: CastType, protocol: CastProtocol, accessToken?: string): Promise<CastSessionVO | null>; /** * 投屏会话接收端通知发送端自己已经做好准备,发送端可以准备开始往指定的投屏会话推流 * 会触发发送端的 onReadyToPush 函数 * @param sessionId 要推流的投屏会话id */ readyToPush(sessionId: number): void; startPush(sessionId: number, mediaPayload: string): void; stopPush(sessionId: number): void; private generateMediaPayload; private sendCastSessionMessage; /** * 主动销毁投屏会话,携带销毁原因 * @param sessionId 试图销毁的投屏会话id * @param reason 销毁原因,可选 * @returns 如果会话成功被销毁则返回会话数据类,否则返回null */ destroyCastSession(sessionId: number, reason?: SessionDestroyReason): Promise<CastSessionVO | null>; destroyAllCastSessions(): Promise<void>; /** * 阻塞方法,控制终端主动告知显示端,当前投屏会话出现异常需要处理(停推、停收、销毁) * @param sessionId 异常投屏会话id * @param error 异常原因 */ castSessionError(sessionId: number, error: string | CastError): void; sendPrivateData(data: string): void; getP2PKey(): P2PKeyVO | null; onServerDied(): void; onDisplayDied(): void; onMySelfDisconnected(cause: string): void; onDisplayReport(report: DisplayReportVO): void; onCastSession(session: CastSessionVO, action: SessionAction, mediaPayload: string, reason?: SessionDestroyReason): void; private readonly isValidMyDataType; onUserHasBeenKicked(user: LoginUserVO): void; onAccountBindDevice(accountBindDevice: AccountBindDeviceVO, action: BindDeviceAction): void; } //# sourceMappingURL=ControllerManager.d.ts.map