本发明涉及离线消息同步,具体的说是一种局域网离线消息同步方法。
背景技术:
1、在传统的通讯系统中,消息由服务器中转给接收方,而服务器作为一个稳定的节点可以提供可靠服务,故一般情况下不会存在消息无法同步或同步困难的问题。
2、而针对去中心化的离线通讯系统(如gotenna),其不仅去掉了中心化服务器,连节点也是由客户端组成,由于该系统中所有节点都是用户设备,而用户使用习惯的不确定性会进一步加深节点的不稳定性,从而出现各种丢失消息的情况;同时消息同步也会衍生出消息重复发送的问题。
3、基于此,针对去中心化的离线通讯系统,设计一种局域网离线消息同步方法,来实现消息的必达,同时避免消息同步时出现消息重复发送的问题。
技术实现思路
1、本发明针对目前技术发展的需求和不足之处,提供一种局域网离线消息同步方法,解决去中心化的离线通讯系统出现的消息丢失和消息同步时消息重复发送的问题。
2、本发明的一种局域网离线消息同步方法,解决上述技术问题采用的技术方案如下:
3、一种局域网离线消息同步方法,其应用于去中心化的离线通讯系统,其包括如下步骤:
4、在离线通讯系统的数据库中,增设消息已读表、消息已读命令qos表、消息确认表;
5、在离线通讯系统中,给发出的每条消息增设命令确认机制、消息已读机制和消息确认机制;
6、使用离线通讯系统进行通讯时,消息发送端根据消息的发送状态和读取状态,通过消息已读机制、命令确认机制和消息确认机制将消息记录在消息已读表、消息已读命令qos表和消息确认表中;且间隔设定时间或者收到消息接收端的上线通知时,消息发送端通过消息确认机制将消息确认表的消息同步给消息接收端。
7、可选的,使用离线通讯系统进行通讯,消息由消息发送端达到消息接收端时,消息接收端通过消息确认机制向消息发送端回复确认,则判定消息的发送状态为已送达,否则判定为未送达;
8、消息的发送状态为已送达时,消息接收端进一步通过消息已读机制向消息发送端回复已读命令,则判定消息的读取状态为已读,否则判定消息的读取状态为未读。
9、进一步可选的,消息的发送状态为已送达、且消息的读取状态为已读时,则消息发送端通过消息已读机制将该消息保存在消息已读表中;
10、消息的发送状态为已送达、且消息的读取状态为未读时,则消息发送端通过命令确认机制将该消息保存在消息已读命令qos表中;
11、消息的发送状态为未送达时,则消息发送端通过消息确认机制将该消息保存在消息确认表中。
12、进一步可选的,使用离线通讯系统进行通讯时,消息发送端将发送的消息放到qos队列,并记录消息发出时间,消息接收端将收到的消息缓存在内存中;
13、循环检测qos队列,若消息发送端qos队列中记录的消息在设定时间内通过消息确认机制收到消息接收端的回复,则消息发送端将收到回复的消息删除qos队列,
14、若消息发送端qos队列中记录的消息未设定时间内通过消息确认机制收到消息接收端回复的确认,则间隔设定时间通过消息确认机制发起至多三次重试;
15、三次重试后仍未通过消息确认机制收到消息接收端的回复,则消息发送端通过消息确认机制将该消息保存在消息确认表中。
16、进一步可选的,间隔设定时间或者收到消息接收端的上线通知时,首先,消息发送端通过消息确认机制读取消息确认表,随后,消息发送端通过消息确认机制询问消息接收端是否收到消息确认表中的消息,再后,消息接收端读取内存中的缓存消息,并通过消息确认机制向消息发送端返回已收到消息和未收到消息,最后,消息发送端通过消息确认机制根据消息接收端的返回结果删除消息确认表中的已收到消息,并将消息确认表中的剩余消息同步至消息接收端。
17、可选的,使用离线通讯系统进行一对一的单聊或者一对多的群聊;
18、使用离线通讯系统进行一对多的群聊时,消息发送端的消息已读命令qos表和消息确认表共享给所有消息接收端,群内的每一个消息接收端都需要通过消息确认机制向消息发送端回复确认。
19、进一步可选的,使用离线通讯系统进行一对多的群聊时,群内的消息接收端之间需要通过消息确认机制互相回复确认。
20、进一步可选的,使用离线通讯系统进行一对多的群聊时,
21、(1)消息发送端发出消息a,在消息发送端a通过消息确认机制接收到除消息接收端c之外回复的确认时,判定消息发送端a向消息接收端c发送消息a的发送状态为未送达,则消息发送端a通过消息确认机制将该消息保存在消息确认表a中;
22、(2)群内剩余消息接收端全部通过消息确认机制向消息接收端c询问是否收到消息a;
23、(3)消息接收端c选中一个消息接收端b,通过消息确认机制向消息接收端b返回已收到的和未收到的来自消息发送端a的消息;
24、(4)消息接收端b根据消息接收端c的返回结果删除消息确认表a的已收到信息,通过消息确认机制将消息确认表a的未收到消息发送至消息接收端c,消息接收端c通过消息确认机制向消息接收端b回复确认,消息接收端b收到消息接收端c回复的确认后删除消息确认表a中已确认的消息。
25、本发明的一种局域网离线消息同步方法,与现有技术相比具有的有益效果是:
26、(1)本发明应用于去中心化的离线通讯系统,可以实现消息必达,还可以在消息同步时避免出现消息重发的问题;
27、(2)本发明尤其在群聊过程中,可以解决部分成员由于网络信号不好或者故障收不到消息的问题。
1.一种局域网离线消息同步方法,其应用于去中心化的离线通讯系统,其特征在于,其包括如下步骤:
2.根据权利要求1所述的一种局域网离线消息同步方法,其特征在于,使用离线通讯系统进行通讯,消息由消息发送端送达消息接收端时,消息接收端通过消息确认机制向消息发送端回复确认,则判定消息的发送状态为已送达,否则判定为未送达;
3.根据权利要求2所述的一种局域网离线消息同步方法,其特征在于,消息的发送状态为已送达、且消息的读取状态为已读时,则消息发送端通过消息已读机制将该消息保存在消息已读表中;
4.根据权利要求3所述的一种局域网离线消息同步方法,其特征在于,使用离线通讯系统进行通讯时,消息发送端将发送的消息放到qos队列,并记录消息发出时间,消息接收端将收到的消息缓存在内存中;
5.根据权利要求4所述的一种局域网离线消息同步方法,其特征在于,间隔设定时间或者收到消息接收端的上线通知时,首先,消息发送端通过消息确认机制读取消息确认表,随后,消息发送端通过消息确认机制询问消息接收端是否收到消息确认表中的消息,再后,消息接收端读取内存中的缓存消息,并通过消息确认机制向消息发送端返回已收到消息和未收到消息,最后,消息发送端通过消息确认机制根据消息接收端的返回结果删除消息确认表中的已收到消息,并将消息确认表中的剩余消息同步至消息接收端。
6.根据权利要求3所述的一种局域网离线消息同步方法,其特征在于,使用离线通讯系统进行一对一的单聊或者一对多的群聊;
7.根据权利要求6所述的一种局域网离线消息同步方法,其特征在于,使用离线通讯系统进行一对多的群聊时,消息发送端的消息已读命令qos表和消息确认表共享给所有消息接收端,群内的消息接收端之间通过消息确认机制互相回复确认。
8.根据权利要求7所述的一种局域网离线消息同步方法,其特征在于,使用离线通讯系统进行一对多的群聊时,