如何发送自定义消息 - housekeeper-software/soft GitHub Wiki

给其他家庭设备发送自定义消息

目前,只能通过P2P设备发送自定义消息。 其他设备不支持,避免出现SIP协议兼容性问题。

  1. callout对方,会将发起方的session_id 和NetClient的信息打包到SIP包头中,其中因为安全,隐去了familyId字段
    对方收到invite的intercomMessage的content字段包含上述信息,
    sid:发起方的session_id
    client:发起方的client信息,可以用NetClient解析
  2. 其他自定义消息将通过SIP协议标准格式传递,消息格式的载体依然是IntercomMessage,其中cmd=message,content内容可以自行定义

给家庭内部其他设备发送消息

只保留一个通道可以发送,命名空间 proxy, cmd=message.
为保证和未来版本的兼容性,我们对消息格式做了约束,如下:
from:自己的clientid,这个不能为空,否则消息可能发给自己
to: 对方的clientid,如果 to为空,则表明这个消息将广播给所有人,除了自己
cmd: 可以自行定义
content:消息负载,可以自行定义,但是上层打包的时候需要base64加密。 请使用IntercomManager中的Base64方法
对方将从:

      void onIntercomProxyMessageArrival(IntercomManager.Intercom intercom,
                                       Bundle bundle);
   中收到消息,需要自行解包bundle内容,字段应该如上的约定。