如何发送自定义消息 - housekeeper-software/soft GitHub Wiki
给其他家庭设备发送自定义消息
目前,只能通过P2P设备发送自定义消息。 其他设备不支持,避免出现SIP协议兼容性问题。
- callout对方,会将发起方的session_id 和NetClient的信息打包到SIP包头中,其中因为安全,隐去了familyId字段
对方收到invite的intercomMessage的content字段包含上述信息,
sid:发起方的session_id
client:发起方的client信息,可以用NetClient解析 - 其他自定义消息将通过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内容,字段应该如上的约定。