连接与断开
统一设备对象通过 bleCapability、lanCapability 和 mqttCapability 暴露三种通信通道。只对已安装并初始化的通道发起连接。
BLE 连接
import { GizCapacityStatus } from '@gizwits/smart-sdk';
await device.bleCapability.connect(device);
const controllable: boolean =
device.bleCapability.getStatus() === GizCapacityStatus.ONLINE_CONTROLLABLE;连接过程会执行 GATT 服务发现和协议鉴权。对同一设备重复调用会复用正在进行或已经成功的连接。
await device.bleCapability.disconnect(device);如果设备广播仍可见,断开后状态可能回到 ONLINE 而不是 OFFLINE。
LAN 连接
await device.lanCapability.connect(device);目标设备必须已通过局域网发现,且当前网络资料仍然有效。
await device.lanCapability.disconnect(device);网络切换、Socket 异常或设备超时也会使 LAN capability 离线。
MQTT 自动连接
GizMqttManager.initialize() 会监听登录态和绑定设备列表,为具备云端资料的绑定设备自动建立服务。业务通常只需等待设备达到可控状态:
const unsubscribeCloud = device.mqttCapability.subscribeStatus().subscribe((status): void => {
// status 为 ONLINE_CONTROLLABLE 后允许云端控制。
});MQTT 主动连接
仅在需要主动启用单台设备的云端订阅时调用:
import { GizMqttManager } from '@gizwits/smart-sdk-mqtt';
await device.mqttCapability.connect(device);
// 等价入口:await GizMqttManager.connectDevice(device);MQTT 主动断开
await device.mqttCapability.disconnect(device);
// 等价入口:await GizMqttManager.disconnectDevice(device);断开单台设备不会关闭其他设备共用的 MQTT 服务。页面离开时应取消状态订阅,但是否断开设备由后台控制需求决定。