先上图再说(左侧是web端,右侧是ios端)
要实现上面的功能,如果所有设备都在线的话,那么carboncopy(xmpp xep-0280协议)这个模块是可以实现接收到的消息同步,但是如果其中一个设备或多个设备都不在线的话,那么现有的就实现不了。发送的消息也存在同样的问题,只要自己的另外的设备不在线,也是不能同步消息的,也要借助离线消息发给自己其他的设备。
既然离线后就实现不了消息同步,那么肯定要改造离线模块了。既然是针对多个设备的那么需要多添加一个设备的字段,也就是说离线消息需要保存多份了。
还有就是一开始还需要登记多个设备了。
总结一下:要实现多设备消息同步,主要借助carboncopy和离线消息。