Homebase TCP 請教


(lucas.lw586) #1

如果使用的是 Homebase TCP 協議, rokid 每次下達命令時, 都會重新建立一個 TCP 連線嗎?

目前我在網橋上實做, 遇到這樣的狀況:

  1. 收到 rokid 發出的 “method”:“list” 命令
  2. 網橋回覆 : {“jsonrpc”:“2.0”,“result”:[{“deviceId”:“1”,}],“id”:1}
  3. 我原本預期網橋應該收到 “method”: “get” , 但是看起來並沒有

所以可能有那些地方要注意的呢?


(奇乐二二二) #2
  1. 使用JSON-RPC over TCP时,每次发起控制的时候都会创建一个TCP连接
  2. 4个标准化接口get、execute、list、command是按需调用的。如果我的NLP是【搜索智能设备】,那么若琪只会调用你的list接口;如果我的NLP是【打开台灯】,那么若琪只会调用你的execute接口。每个接口的具体含义请参考文档
  3. 看起来你针对list接口回复给若琪的数据有些问题,result里面的设备信息格式需要和文档提供的一致,否则及时响应了设备也会被过滤掉

TCP文档在这里 设备文档在这里 @lucas.lw586


(lucas.lw586) #3

瞭解了, 調整信息內容後已經可以接受到 list 和 execute 的命令了.

但 get 一直未收到過, 它在何種狀況下會發出這個命令呢?


(奇乐二二二) #4

get在设计之初是用来获取指定设备的状态,后来为了降低整体的复杂度这个接口暂时没有使用,你可以不实现这个接口并返回一个错误 command接口一般是用来做oauth