长连接通信

最近更新时间:2022-02-15 14:41:28

我的收藏

订阅设备信息

接口定义
通过 WebSocket 监听服务端实时推送的设备上下线状态及属性数据。
sdk.subscribeDevices(deviceList: string[] | deviceInfo[]): Promise<void>;
参数说明
参数名
参数描述
类型
必填
deviceList
设备 ID 列表,或设备信息列表(deviceInfo 需包含 DeviceId 字段)。
string[] | deviceInfo[]
示例代码
通过设备 ID 列表订阅
sdk.subscribeDevices([
'Product1/Device1',
'Product1/Device2',
'Product2/Device3'
]);

通过设备列表订阅
sdk.requestApi('AppGetFamilyDeviceList', { FamilyId: 'default' })
.then(data => {
sdk.subscribeDevices(data.DeviceList);
});


手动建立长连接

手动连接 WebSocket。一般不需要调用,除非关闭了 sdkOptions.disconnectWhenAppHide 选项。
接口定义
sdk.connectWebsocket() => Promise<void>;
示例代码
sdk.connectWebsocket();

手动断开长连接

手动断开 WebSocket。一般不需要调用,除非关闭了 sdkOptions.autoReconnectsdkOptions.connectWhenAppShow 选项。
接口定义
sdk.disconnectWebsocket() => Promise<void>;
示例代码
sdk.disconnectWebsocket();

监听事件

监听 WebSocket 事件。
sdk.on(type: EventTypes, listener: (...args) => void) => void;
参数
参数名
参数描述
类型
必填
type
要监听的事件。
EventTypes
listener
事件触发时的回调函数。
(param) => void
示例代码
const { EventTypes } = require('qcloud-iotexplorer-appdev-sdk').AppDevSdk.constants;

// 监听设备上报数据推送
sdk.on(EventTypes.WsReport, ({ deviceId, deviceData }) => {
console.log('websocket device report', deviceId, deviceData);
});

取消监听事件

取消监听 WebSocket 事件。
接口定义
sdk.off(type: EventTypes, listener: (...args) => void) => void;
参数说明
参数名
参数描述
类型
必填
type
要取消监听的事件
EventTypes
listener
要取消监听的事件的回调函数,不传则清除该事件的所有回调函数
(param) => void | null
示例代码
const { EventTypes } = require('qcloud-iotexplorer-appdev-sdk').AppDevSdk.constants;

const listener = ({ deviceId, deviceData }) => {
console.log('websocket device report', deviceId, deviceData);
};

// 监听设备上报数据推送
sdk.on(EventTypes.WsReport, listener);

// 取消监听设备上报数据推送
sdk.off(EventTypes.WsReport, listener);

事件列表

事件类型
描述
参数
EventTypes.WsReport
设备上报数据。
{ deviceId, deviceData }
EventTypes.WsControl
设备控制数据。
{ deviceId, deviceData }
EventTypes.WsStatusChange
设备在线状态变更。
{ deviceId, deviceStatus }
EventTypes.WsEventReport
设备事件上报。
{ Payload }
EventTypes.WsActionReport
设备行为上报。
{ Payload }
EventTypes.WsActionPush
设备行为下发。
{ Payload }
EventTypes.WsPush
WebSocket 推送原始数据。
{ push, action, params }
EventTypes.WsError
WebSocket 发生错误。
WebSocket error 事件的原始错误信息
EventTypes.WsClose
WebSocket 连接关闭。
{ code, reason }