浏览器与App接入
约 841 字大约 3 分钟
2026-10-16
应用使用正式登录鉴权REST,不拿设备凭据冒充设备MQTT。下表四个接口是当前应用传输入口;业务支持以支持范围及应用命令为准,不能把所有逻辑命令视为均已开放。
公共路径前缀为/api/v1/im/interaction,使用部署已有登录Token及企业上下文,Content-Type为application/json。普通用户登录Token放在ithings-token请求头,不把endpointId当Token或自行拼装Bearer;登录凭据由实际部署提供,本页不约定另一个认证系统。
| POST路径 | JSON请求 | 成功data |
|---|---|---|
/endpoints/register | 无业务参数 | endpointId:string、expiresAt:int64 |
/commands | endpointId:string、command:object | accepted:boolean、msgToken:string、replay:boolean |
/events | endpointId:string、limit:integer,1~32 | list数组,每项deliveryId:string和event:object |
/events/ack | endpointId:string、deliveryIds:string[],1~32 | acknowledged:integer,已确认数量;重复确认幂等成功 |
端点绑定真实登录用户及企业,有效一小时,不因轮询自动续期;端点过期不允许通过重新注册偷偷接管原会话。endpointId不是登录Token。
发起预览的完整传输封装
先注册端点并保存返回ID,再提交命令。以下值均用实际注册和授权设备替换:
{"endpointId":"registered-endpoint","command":{"msgToken":"open-view-1","method":"interaction.open","target":{"productID":"product-demo","deviceName":"camera-demo"},"params":{"purpose":"ipcLiveView","cameraId":"front"}}}POST /commands返回HTTP202受理,业务包装code为202;具体接通、失败和结束由后续事件确定,不把accepted当作设备已经采集。重复同token同正文得到原操作重放,不分配新会话;同token改变目标或参数为冲突。
用实际endpointId拉取事件:
{"endpointId":"registered-endpoint","limit":16}响应data.list[].event已经是完整JSON对象,不是待二次JSON.parse的字符串。按逻辑method、sessionId及水位处理interaction.result/state/message,再确认已处理的deliveryId:
{"endpointId":"registered-endpoint","deliveryIds":["delivered-event-id"]}空list正常,不作忙循环。未ACK会重投,处理必须幂等。批量ACK存在跨端、未知或过期ID时整批拒绝,不能据此删本地尚未处理的项。当前使用持久REST拉取及ACK,不假定WebSocket主动推送已装配。
实际WebRTC媒体
- 创建Peer及用户明确允许的采集源/接收轨;预览默认不采集应用麦克风。使用平台提供的STUN/TURN配置。
- createOffer→setLocalDescription后等待ICE gathering complete,提交包含全部候选的完整SDP;不发送trickle候选。
- 通过
interaction.mediaOffer提交当前sessionId、mediaRevision和WebRTC正文,封装在原commands中。字段见媒体协商及应用命令。 - 从实际事件取得mediaAnswer,setRemoteDescription;媒体真实连通后上报interaction.mediaState。仅收到SDP不能自报connected。
- 等正式建立事件,再按允许轨收发。关摄像头/静音须同步实际轨状态,挂断关闭采集、Peer和订阅;事件端点不能替代媒体释放。
占位SDP不是可用offer。视频帧、RTP、音频和文件原件均不走commands或events。对讲和会议的麦克风许可复用IM,预览权限不自动授予发言权。
更新日志
2026/10/16 16:04
查看所有更新日志
fe3a7-docs(AI与音视频): 按场景整理完整接入流程与命令契约于
