UNPKG

yimultiscreenserver-sdk-web

Version:

YiMultiScreenServer SDK for Web

75 lines 2.94 kB
import { ControllerMQTTImpl } from "../core/mqtt/impl/ControllerMQTTImpl"; import { SDKLog } from "../util/SDKLog"; import { ControllerDeviceVO } from "../vo/device/ControllerDeviceVO"; import { ControllerManager } from "./ControllerManager"; export class Builder { constructor() { this.controllerManager = new ControllerManager(); this.device = new ControllerDeviceVO(); this.guid = ""; } initControllerDeviceId(guid) { this.guid = guid; this.device.guid = guid; this.controllerManager.setGuid(guid); return this; } initControllerType(type) { this.device.controllerDeviceType = type; return this; } initNetwork(ip, gateway, mask) { this.device.ip = ip; this.device.gateway = gateway; this.device.mask = mask; return this; } /** * 设置显示终端事件回调,用于接收并响应与UI相关的事件 * @param callback 显示终端事件回调 * @return 构造器实体 */ setCallback(callbak) { this.controllerManager.setCallback(callbak); return this; } /** * SDK未提供http请求实现,app需要封装自身的实现,并可以选择对url做自己的配置,不提供则使用sdk内部默认的配置 * @param requestImpl http请求实现,比如在实现类中封装fetch api * @param config http服务器配置项实现,用于配置符合条件的各项参数 * @param isTestServer 是否使用测试服,默认为false即使用正式服 * @return 构造器实体 */ setHttpRequestImpl(requestImpl, config, isTestServer) { config.setTestEnable(isTestServer); this.controllerManager.setHttpRequester(requestImpl).setHttpConfig(config); return this; } /** * SDK目前未提供mqtt实现,需app进行设置,否则无法完成mqtt请求 * 请务必在initControllerDeviceId函数之后调用 * @param clientImpl mqtt实现的封装,比如在实现类中封装Paho mqtt库 * @param config mqtt服务器配置项实现,用于配置符合条件的各项参数 * @param isTestServer 是否使用测试服,默认为false即使用正式服 * @return 构造器实体 */ setMQTTClientImpl(clientImpl, config, isTestServer) { if ("" === this.guid) { throw new Error("initControllerDeviceId must be called first"); } let logic = new ControllerMQTTImpl(this.guid, this.controllerManager); config.setTestEnable(isTestServer); logic.setMQTTClientImpl(clientImpl, config); this.controllerManager.setMQTTLib(logic); return this; } setSDKLogger(logger) { SDKLog.setImpl(logger); return this; } build() { this.controllerManager.createControllerDevice(this.device); return this.controllerManager; } } //# sourceMappingURL=Builder.js.map