CN105978796A - 基于不稳定移动网络的消息通信方法及*** - Google Patents
基于不稳定移动网络的消息通信方法及*** Download PDFInfo
- Publication number
- CN105978796A CN105978796A CN201610490871.5A CN201610490871A CN105978796A CN 105978796 A CN105978796 A CN 105978796A CN 201610490871 A CN201610490871 A CN 201610490871A CN 105978796 A CN105978796 A CN 105978796A
- Authority
- CN
- China
- Prior art keywords
- message
- version number
- client
- server
- message version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
- H04L51/066—Format adaptation, e.g. format conversion or compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种消息通信方法及***,属于网络通讯技术领域,所述方法包括:当客户端之间进行消息收发时,将接收客户端从服务器收到的新消息版本号与本地消息版本号进行比较;若新消息版本号与接收客户端的本地消息版本号连续,则将本地消息版本号更新为新消息版本号;若新消息版本号与本地消息版本号不连续,则启动同步进程,接收客户端将本地消息版本号发送给服务器,服务器将本地消息版本号之后的所有消息和与消息相对应的消息版本号发送给接收客户端。本发明实施例建立消息版本号机制,保证了通信双方收发的消息连续,不会因为网络环境的不稳定导致消息丢失或乱序,避免了因为反复回执和重发而导致流量的增加。
Description
技术领域
本发明实施例涉及网络通讯技术领域,尤其涉及一种消息通信方法及***,尤其适用于不稳定的移动网络。
背景技术
在无线互联网的通信中,手机使用者的位置在不断变换,网络状态也在不断切换。例如,用户进入电梯,网络连接就会断开。而当用户从4G网络进入wifi环境,网络也会断开。在这种情况下,如果网络断开的时候有消息发送到这台手机,则由于网络连接断开,就会导致该手机无法收到这条消息。
发明内容
目前业内针对这种不稳定网络环境下的网络通信,多使用回执和重发的通信机制。这种方式是在每次服务器下发消息的时候都要求手机在接到消息的时候进行回执通信。如果没有收到回执,那么服务器就认为手机没有收到,会重发这条消息。这种方式会因为不断的回执信息而造成更多的网络流量,也会由于不断重发增加服务器的压力。
本发明实施例提供一种消息通信方法及***,用以解决上述现有技术中的缺陷,实现通信双方信息发送和接收的有序性。
本发明实施例提供一种消息通信方法,应用于客户端之间的消息收发,该方法包括:
当客户端之间进行消息收发时,将接收客户端从服务器收到的新消息版本号与本地消息版本号进行比较;
若新消息版本号与接收客户端的本地消息版本号连续,则将本地消息版本号更新为新消息版本号;
若新消息版本号与本地消息版本号不连续,则启动同步进程,接收客户端将本地消息版本号发送给服务器,以从服务器接收本地消息版本号之后的所有消息和与消息相对应的消息版本号。
本发明实施例还提供一种消息通信***,包括客户端和服务器,其中,
客户端含有
连接模块,配置为与服务器连接;
消息收发模块,配置为能够在客户端之间相互进行消息收发;
服务器配包括消息版本号管理模块,生成进行消息收发的客户端之间的更新的消息版本号并向所述进行消息收发的客户端分别发送;
其中,客户端还包括消息版本号管理模块,配置为:
-若收到新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号;
-若新消息版本号与本地消息版本号不连续,则启动同步进程,将本地消息版本号发送给服务器以获取所述本地消息版本号之后的所有消息和与消息相对应的消息版本号。
本发明实施例提供的基于不稳定移动网络的消息通信方法及***,任一客户端发送消息给另一客户端,服务器将通信的两个客户端之间的消息版本号更新,得到新消息版本号,服务器将消息和新消息版本号发送给接收客户端,接收客户端收到消息和新消息版本号后,将新消息版本号与本地消息版本号进行比较,若消息版本号与本地消息版本号连续,则将本地消息版本号进行更新,得到新消息版本号,并展示消息,若消息版本号与本地消息版本号不连续,先将消息保存但不暂时不展示消息,发起同步请求,启动同步进程,服务器将本地消息版本号之后的所有消息发送给接收客户端,此时,接收客户端的消息版本号实现了更新同步;通过消息版本号机制和推送、主动同步的方式,保证了通信双方的消息连续,不会因为网络环境的不稳定导致消息丢失或乱序,改变了现有技术中需要通过不断的回执和重发的通信机制,避免了因为反复回执和重发而导致流量的增加,同时,避免反复重发增加服务器的压力,实现了客户端在不稳定的网络状态下也能不丢失信息,并且通信的双方信息发送和接收是有序的,同时降低了流量和服务器的压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的短消息通信方法实施例的流程图;
图2为同步进程的一种实施例的示意图;
图3为本发明实施例的短消息通信***的示意图;
图4为本发明实施例的短消息通信装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1~图4示意性地显示了根据本发明的一种实施方式的基于不稳定移动网络的消息通信方法和***。
如图1和图2所示,根据本发明的消息通信方法的实施例1包括以下步骤:
S1:客户端之间进行消息收发,发送客户端发送消息给接收客户端。客户端发出的消息是不包含消息版本号的。消息版本号完全由服务器进行增加和管理,服务器在接收到客户端发出来的消息时,会启动内部消息版本号管理机制,对消息版本号进行增加更新,客户端只是接收服务器发送过来的消息版本号。
S3:接收客户端收到包含新消息版本号和消息的消息协议后,将从服务器收到的新消息版本号与本地消息版本号进行比较。
S31:若新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号,并展示消息。
S32:若新消息版本号与本地消息版本号不连续,则暂不展示消息,而是启动同步进程。接收客户端通过服务器管理的消息版本号进行消息同步。例如,接收客户端可将本地消息版本号发送给所述服务器,以从所述服务器接收所述本地消息版本号之后的所有消息和与消息相对应的消息版本号。例如可以执行以下步骤:
S321:接收客户端发送同步请求协议(同步请求协议中装载了该客户端的本地消息版本号),将本地消息版本号发送给服务器。
S322:服务器返回同步返回协议(同步返回协议中包含了消息版本号和与消息版本号对应的消息),服务器将接收到的消息版本号之后的所有消息和与消息相对应的消息版本号发送给接收客户端。
如图1和2所示,在上述实施例1的基础上,根据本发明的消息通信方法的实施例2还包括如下步骤:
S0:若客户端网络断开并重新连接,则启动同步进程。
S321:客户端发送同步请求协议(同步请求协议中装载了该客户端的本地消息版本号),将本地消息版本号发送给服务器。
S322:服务器返回同步返回协议(同步返回协议中包含了消息版本号和与消息版本号对应的消息),服务器将接收到的消息版本号之后的所有消息和与消息相对应的消息版本号发送给客户端。在该同步进程中,该客户端将本地消息版本号发送给服务器,服务器将接收到的消息版本号之后的所有消息和与消息相对应的消息版本号发送给客户端,以判断在网络断开期间,是否有新消息未接收,保证新消息能够及时送达。
如图1~图2所示,根据本发明的消息通信方法实施例3包括如下步骤:
S0:若客户端网络断开并重新连接,则启动同步进程。在该同步进程中,该客户端将本地消息版本号发送给服务器,服务器将接收到的消息版本号之后的所有消息和与消息相对应的消息版本号发送给客户端,以判断在网络断开期间,是否有新消息未接收,保证新消息能够及时送达。
S1:客户端之间进行消息收发,发送客户端发送消息给接收客户端。客户端发出的消息是不包含消息版本号的。消息版本号完全由服务器进行增加和管理,服务器在接收到客户端发出来的消息时,会启动内部消息版本号管理机制,对消息版本号进行增加更新,客户端只是接收服务器发送过来的消息版本号。
S2:服务器对接收到消息进行合法性判断。
S21:若消息不合法,通知发送客户端消息发送失败,发送客户端和接收客户端之间的本地消息版本号不变。服务器会发送消息发送失败回执协议至发送客户端。消息发送失败回执协议包含此不合法消息之前的两客户端之间的消息版本号,通知发送客户端消息发送失败。例如客户端A将客户端B拉入了黑名单,那么客户端B发送给客户端A的消息就是不合法的。服务器视这次消息发送是无效的,那么客户端A和客户端B之间的消息版本号不会改变。
S22:当服务器判断消息是合法的,则服务器将两客户端之间的消息版本号更新,例如将消息版本号增加形成新消息版本号并保存新消息版本号,且服务器发送消息发送成功回执协议至发送客户端。消息发送成功回执协议包括新消息版本号,由此,将新消息版本号返回给发送客户端。发送客户端将本地消息版本号更新为新消息版本号。
S23:同时,当服务器判断消息是合法的,服务器将消息和更新的消息版本号发送给接收客户端。服务器发送消息协议,消息协议内含消息和与消息对应的新消息版本号。服务器发送消息时,其实是发送包含消息和新消息版本号的消息协议。通过发送消息协议将消息和新消息版本号发送给接收客户端。
S3:接收客户端收到包含新消息版本号和消息的消息协议后,将从服务器收到的新消息版本号与本地消息版本号进行比较。
S31:若新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号,并展示消息。
S32:若新消息版本号与本地消息版本号不连续,则暂不展示消息,而是启动同步进程。
S321:接收客户端发送同步请求协议(同步请求协议中装载了该客户端的本地消息版本号),将本地消息版本号发送给服务器。
S322:服务器返回同步返回协议(同步返回协议中包含了消息版本号和与消息版本号对应的消息),服务器将接收到的消息版本号之后的所有消息和与消息相对应的消息版本号发送给接收客户端。
根据上述实施方案,随着移动通信终端的位置在不断变换,其网络状态也在不断切换。通信终端上的应用客户端经常会出现断开、重连的情况。如果在客户端A网络断开期间,有客户端B对客户端A发送消息,那么客户端A将无法收到消息。当客户端A重新上线后,客户端A发起同步进程,将客户端A本地消息版本号发送给服务器,服务器将本地消息版本号之后的消息全部按消息版本号次序依次发给客户端A,保证消息不丢失不紊乱。
例如,在客户端A网络断开期间,客户端B给客户端A发来四条消息,假设这四条消息的消息版本号是5到8,客户端A掉线之前本地消息版本号是4。当客户端A重新上线后,发起同步进程,将本地消息版本号4发给服务器。服务器将消息版本号为5到8的消息依序发给客户端A并将本地消息版本号更新为8。如果在发送同步进程过程中,由于服务器崩溃等原因,导致同步不成功,那么客户端A无法收到新消息和更新消息版本号。当下次客户端B又给客户端A发送消息时,将发现消息版本号和客户端A本地消息版本号不连续(因为上次断网期间,客户端B给客户端A发送的信息,由于服务器崩溃客户端A没有及时更新消息版本号,没有收到上次客户端B发送的消息)。此时,客户端A再次发起同步进程,要求得到上次和本次客户端B给客户端A发送的消息以及更新本地消息版本号。
在上个例子中,由于服务器崩溃导致客户端A同步失败,客户端A的本地消息版本号仍为4。此时,客户端B发来消息版本号为9的消息,客户端A发现本地消息版本号4和发来的消息版本号9不连续,则客户端A暂时不展示消息版本号为9的消息,而是发起同步进程,服务器将消息版本号为5到8的消息依序发给客户端A并将本地消息版本号更新为9。
若在同步过程中,客户端B又给客户端A发来了新消息,那么在同步进程结束之前,新消息不会被展示,也先不做连续性判断。当同步结束后,再对新消息进行连续性判断,展示新消息。例如,在上个例子的同步过程中,客户端B又给客户端A发送了第10条消息,那么在同步进程结束之前,第10条消息不会被展示,也先不做连续性判断。当同步结束后,再进行连续性判断,并展示第10条消息和将本地消息版本号更新为10。
在本实施方式中,由于通过消息版本号机制和推送、主动同步的方式,保证了通信双方的消息连续,不会因为网络环境的不稳定导致消息丢失或乱序。
为了避免客户端接收到非法消息,服务器还可对接收到消息进行合法性判断。若判断消息不合法,则通知发送客户端消息发送失败。两客户端之间消息版本号不变。若消息合法,才进行消息版本号更新和消息推送步骤。
为了保证客户端接收到的消息是有序的,不会出现消息顺序紊乱的情况,消息版本号为从0开始的64位无符号二进制数。消息版本号更新具有连续偏序性,即消息版本号只能增加不能减少。简言之,消息版本号只能从0开始顺序增加,而不会出现消息版本号已经是10,而后又变成9或更少的情况。
如图3所示,根据本发明实施例的另一个方面,还提供一种消息通信***,尤其适用于不稳定的移动网络中客户端的消息通信以避免消息丢失。
如图3所示,根据本发明的消息通信***的实施例1包括接收客户端20、发送客户端10、通信网络30和服务器40。其中,接收客户端20、发送客户端10均可安装于通信终端(如手机、智能手表、智能电视、平板电脑等)上。本领域技术人员可以理解,本申请中所称接收客户端和发送客户端可理解为安装有实现上述实施例中方法的应用程序的通信终端。
通信网络30为客户端10,20与服务器40之间的通信提供数据链路。
服务器40包括消息版本号管理模块403。服务器的消息版本号管理模块403中预先建立了消息版本号管理机制,如上文中所述。服务器40的消息版本号管理模块403将两客户端10,20之间发送消息的消息版本号更新,且将新消息版本号返回给发送客户端10。同时,发送消息协议,将消息的具体内容和与消息对应的消息版本号填入服务器40内部设置的消息协议中,以消息协议的形式将消息的具体内容和与消息对应的消息版本号发给接收客户端20。
客户端10,20分别包括连接模块101,201、消息收发模块102,202和消息版本号管理模块103,203。
客户端10,20的连接模块101,201负责客户端10,20和服务器40之间的连接。如果通信终端网络断开又重新连接,则客户端10,20的连接模块101,201负责发起客户端10,20网络重新连接。
消息收发模块102,202负责发送和接收消息与消息版本号。客户端10,20的消息版本号管理模块103,203负责接收服务器40发送的消息版本号并判断接收到的消息版本号与本地消息版本号是否连续,以确定是否需要发起同步进程。客户端10,20的消息版本号管理模块103,203接收到服务器40发送过来的消息协议,读取消息协议中的新消息版本号,并与本地消息版本号比较,判断是否连续。若连续,则展示消息并将本地消息版本号更新为新消息版本号。若不连续,客户端10,20的消息版本号管理模块103,203向服务器发起同步请求协议,同步请求协议中装载了本地消息版本号,要求服务器40将本地消息版本号之后的所有消息按照消息协议中规定的格式发给自身,同时更新本地消息版本号。
发送客户端10的消息收发模块102将消息发送至服务器40。发送客户端10的消息版本号管理模块103接收服务器40返回的消息版本号。
接收客户端20的消息收发模块202收到新消息版本号和消息后,接收客户端20的消息版本号管理模块203将新消息版本号与本地消息版本号进行比较,若新消息版本号与本地消息版本号不连续,则暂不展示消息,而是启动同步进程。在该同步进程中,接受客户端20的消息版本号管理模块203发起同步请求协议,同步请求协议中装载了本地消息版本号,要求服务器40将本地消息版本号之后的所有消息以消息协议的形式发给自身,同时更新本地消息版本号。若新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号。
如图3所示,根据本发明的消息通信***的实施例2包括接收客户端20、发送客户端10、通信网络30和服务器40,其中,接收客户端20、发送客户端10均可安装于通信终端(如手机、智能手表、智能电视、平板电脑等)上。通信网络30为客户端10,20与服务器40之间的通信提供数据链路。
服务器40包括连接模块401、消息合法性判断模块402、消息版本号管理模块403和存储模块404。服务器40的连接模块401管理客户端10,20与服务器40之间的连接,并负责维护服务器40与客户端10,20之间的长连接(长连接是相较于短连接而言的,指在一个连接上可以连续发送多个数据包。在连接保持期间,如果没有数据包发送,需要双方发链路检测包),将通过长连接发来的消息转发给消息合法性判断模块402。服务器40的连接模块401和消息合法性判断模块402之间通过消息队列进行通信。服务器的消息版本号管理模块403中预先建立了消息版本号管理机制,如上文中所述。消息合法性判断模块402对收到的消息进行合法性判断。消息是否合法是按照不同的聊天业务逻辑来判断的(例如,客户端A将客户端B拉入黑名单,那么客户端B给客户端A发的消息就是不合法了。又如,客户端B给客户端A发送了病毒短消息,那么此条消息也是不合法的)。若消息不合法,则向发送客户端10发送消息,通知发送客户端10消息发送失败。在此情况下,服务器40不会更新消息版本号也不会发送消息,发送客户端10的消息版本号保持不变。若消息合法,则服务器40的消息版本号管理模块403将两客户端10,20之间发送消息的消息版本号更新,且将新消息版本号保存在存储模块404并返回给发送客户端10。同时,发送消息协议,将消息的具体内容和与消息对应的消息版本号填入服务器40内部设置的消息协议中,以消息协议的形式将消息的具体内容和与消息对应的消息版本号发给接收客户端20。服务器40将消息协议通过自身的连接模块401发送给接收客户端20,将消息和新消息版本号发送给接收客户端20。存储模块404存储消息内容以及消息版本号。
客户端10,20分别包括连接模块101,201、消息收发模块102,202、消息版本号管理模块103,203和展示模块104,204。
客户端10,20的连接模块101,201负责客户端10,20和服务器40之间的连接。如果通信终端网络断开又重新连接,则客户端10,20的连接模块101,201负责发起客户端10,20网络重新连接。
消息收发模块102,202负责发送和接收消息与消息版本号。客户端10,20的消息版本号管理模块103,203负责接收服务器40发送的消息版本号并判断接收到的消息版本号与本地消息版本号是否连续,以确定是否需要发起同步进程。客户端10,20的消息版本号管理模块103,203接收到服务器40发送过来的消息协议,读取消息协议中的新消息版本号,并与本地消息版本号比较,判断是否连续。若连续,则展示消息并将本地消息版本号更新为新消息版本号。若不连续,客户端10,20的消息版本号管理模块103,203向服务器发起同步请求协议,同步请求协议中装载了本地消息版本号,要求服务器40将本地消息版本号之后的所有消息按照消息协议中规定的格式发给自身,同时更新本地消息版本号。
展示模块104,204依序展示接收到的消息内容,根据消息协议中的消息版本号依序展示消息协议中的消息内容。
发送客户端10的消息收发模块102将消息发送至服务器40。发送客户端10的消息版本号管理模块103接收服务器40返回的消息版本号。
接收客户端20的消息收发模块202收到新消息版本号和消息后,接收客户端20的消息版本号管理模块203将新消息版本号与本地消息版本号进行比较,若新消息版本号与本地消息版本号不连续,则暂不展示消息,而是启动同步进程。在该同步进程中,接受客户端20的消息版本号管理模块203发起同步请求协议,同步请求协议中装载了本地消息版本号,要求服务器40将本地消息版本号之后的所有消息以消息协议的形式发给自身,同时更新本地消息版本号。若新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号,并通过展示模块204展示消息。
其有益效果是,通过消息版本号机制和推送、主动同步的方式,保证了通信双方的消息连续,不会因为网络环境的不稳定导致消息丢失或乱序,改变了现有技术中需要通过不断的回执和重发的通信机制,避免了因为反复回执和重发而导致流量的增加,同时,避免反复重发增加服务器的压力,实现了客户端在不稳定的网络状态下也能不丢失信息,并且通信的双方信息发送和接收是有序的,同时降低了流量和服务器的压力。
图4为本申请实施例提供的一种消息通信装置的示意图,本申请具体实施例并不对一种消息通信装置的具体实现做限定。如图4所示,该消息通信装置可以包括第一通信端500:
处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530、以及通信总线540。其中:
处理器510、通信接口520、以及存储器530通过通信总线540完成相互间的通信。
存储器530、用于存放程序531。
通信接口520,用于与比如客户端等的网元通信。
处理器530,用于执行程序531,具体可以执行上述方法实施例中的相关步骤。
具体地,程序531可以包括程序代码,所述程序代码包括计算机操作指令。
处理器510可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
处理器510,用于执行所述存储器530存储的程序531,所述程序531使得所述处理器530执行以下操作:
对接收到消息进行合法性判断,若消息不合法,通知发送客户端10消息发送失败,发送客户端10和接收客户端20之间的本地消息版本号不变;若消息合法,则将通信的两客户端10,20之间的消息版本号更新,发送消息发送成功回执协议至发送客户端10,同时,发送消息协议给接收客户端20;
消息通信装置还可以包括第二通信端600,第二通信端600可以包括:
处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630、以及通信总线640。其中:
处理器610、通信接口620、以及存储器630通过通信总线640完成相互间的通信。
存储器630、用于存放程序631。
通信接口620,用于与比如服务器等的网元通信。
处理器610,用于执行程序631,具体可以执行上述方法实施例中的相关步骤。
具体地,程序631可以包括程序代码,所述程序代码包括计算机操作指令。
处理器610可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
处理器610,用于执行所述存储器630存储的程序631,所述程序631使得所述处理器610执行以下操作:
对接收到的消息协议中的新消息版本号进行连续性判断,若新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号,并展示消息,若新消息版本号与本地消息版本号不连续,则暂不展示消息,而是启动同步进程;
另外,若网络断开并重新连接上,也启动同步进程。
本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.消息通信方法,应用于客户端之间的消息收发,包括:
将接收客户端从服务器收到的新消息版本号与本地消息版本号进行比较;
若所述新消息版本号与所述接收客户端的本地消息版本号连续,则将本地消息版本号更新为新消息版本号;
若新消息版本号与本地消息版本号不连续,则启动同步进程,所述接收客户端将本地消息版本号发送给所述服务器,以从所述服务器接收所述本地消息版本号之后的所有消息和与消息相对应的消息版本号。
2.根据权利要求1所述的方法,还包括:在客户端从通信网络断开后再次连接至所述通信网络时,启动同步进程。
3.根据权利要求1所述的方法,还包括:所述服务器根据发送客户端和接收客户端之间的消息发送,将所述客户端之间的消息版本号更新为所述新消息版本号返回给发送客户端,和将消息和所述新消息版本号发送给所述接收客户端。
4.根据权利要求1或2或3所述的方法,还包括:对接收到消息进行合法性判断,若消息不合法,通知所述发送客户端消息发送失败,所述发送客户端和接收客户端之间的本地消息版本号不变;若消息合法,则所述服务器将所述消息版本号更新并将消息和所述更新的消息版本号发送给所述接收客户端。
5.根据权利要求4所述的方法,其中,所述消息版本号为从0开始的64位无符号二进制数,所述消息版本号更新具有连续偏序性。
6.消息通信***,包括客户端和服务器,其中,
所述客户端含有
连接模块,配置为与所述服务器连接;
消息收发模块,配置为能够在所述客户端之间相互进行消息收发;
所述服务器还包括消息版本号管理模块,配置为生成进行消息收发的客户端之间的更新的消息版本号并向所述进行消息收发的客户端分别发送;
所述客户端还包括消息版本号管理模块,配置为:
-若收到所述新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号;
-若新消息版本号与本地消息版本号不连续,则启动同步进程,将本地消息版本号发送给所述服务器以获取所述本地消息版本号之后的所有消息和与消息相对应的消息版本号。
7.根据权利要求6所述的***,其中所述客户端的消息版本号管理模块还配置为,在客户端从通信网络断开后再次连接至所述通信网络时,启动同步进程。
8.根据权利要求6所述的***,其中所述服务器还包括消息合法性判断模块,配置为对接收到消息进行合法性判断。
9.根据权利要求8所述的***,其中所述消息合法性判断模块判断消息不合法时,则通知发送客户端消息发送失败,且所述服务器的消息版本号管理模块不更新所述发送客户端和接收客户端之间的消息版本号;若消息合法,则所述服务器的消息版本号管理模块将所述发送客户端和接收客户端之间的消息版本号更新,并将新消息版本号返回给发送客户端,同时将所述服务器的存储模块中保存的消息和新消息版本号发送给所述接收客户端。
10.根据权利要求8或9所述的***,其中所述客户端的消息版本号管理模块还配置为,在收到新消息版本号和消息后,将新消息版本号与本地消息版本号进行比较,若新消息版本号与本地消息版本号不连续,则暂不展示消息,启动同步进程;若新消息版本号与本地消息版本号连续,则将本地消息版本号更新为新消息版本号,并展示所述消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610490871.5A CN105978796A (zh) | 2016-06-28 | 2016-06-28 | 基于不稳定移动网络的消息通信方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610490871.5A CN105978796A (zh) | 2016-06-28 | 2016-06-28 | 基于不稳定移动网络的消息通信方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105978796A true CN105978796A (zh) | 2016-09-28 |
Family
ID=57020907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610490871.5A Pending CN105978796A (zh) | 2016-06-28 | 2016-06-28 | 基于不稳定移动网络的消息通信方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105978796A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108718274A (zh) * | 2018-05-29 | 2018-10-30 | 北京德惠众合信息技术有限公司 | 一种即时通讯消息的防丢失方法 |
CN109729061A (zh) * | 2018-05-04 | 2019-05-07 | 平安科技(深圳)有限公司 | 消息处理方法、装置、设备及可读存储介质 |
CN111355773A (zh) * | 2019-07-31 | 2020-06-30 | 深圳市鸿合创新信息技术有限责任公司 | 校园信息发布*** |
CN113472856A (zh) * | 2021-06-08 | 2021-10-01 | 北京城市网邻信息技术有限公司 | 一种消息推送处理方法、装置、电子设备及存储介质 |
CN115412519A (zh) * | 2022-08-29 | 2022-11-29 | 中国建设银行股份有限公司 | 消息传输方法、装置、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN103220206A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种消息发送方法、装置和一种消息接收方法、装置 |
US20150281143A1 (en) * | 2012-12-10 | 2015-10-01 | Tencent Technology (Shenzhen) Company Limited | Method, system, and storage medium for message processing |
CN105100062A (zh) * | 2015-06-25 | 2015-11-25 | 走遍世界(北京)信息技术有限公司 | 信息推送方法、装置及*** |
US20160026704A1 (en) * | 2004-11-08 | 2016-01-28 | Dropbox, Inc. | Method and apparatus for a file sharing synchronization system |
-
2016
- 2016-06-28 CN CN201610490871.5A patent/CN105978796A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026704A1 (en) * | 2004-11-08 | 2016-01-28 | Dropbox, Inc. | Method and apparatus for a file sharing synchronization system |
CN103220206A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种消息发送方法、装置和一种消息接收方法、装置 |
US20150281143A1 (en) * | 2012-12-10 | 2015-10-01 | Tencent Technology (Shenzhen) Company Limited | Method, system, and storage medium for message processing |
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN105100062A (zh) * | 2015-06-25 | 2015-11-25 | 走遍世界(北京)信息技术有限公司 | 信息推送方法、装置及*** |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729061A (zh) * | 2018-05-04 | 2019-05-07 | 平安科技(深圳)有限公司 | 消息处理方法、装置、设备及可读存储介质 |
CN109729061B (zh) * | 2018-05-04 | 2021-09-21 | 平安科技(深圳)有限公司 | 消息处理方法、装置、设备及可读存储介质 |
CN108718274A (zh) * | 2018-05-29 | 2018-10-30 | 北京德惠众合信息技术有限公司 | 一种即时通讯消息的防丢失方法 |
CN111355773A (zh) * | 2019-07-31 | 2020-06-30 | 深圳市鸿合创新信息技术有限责任公司 | 校园信息发布*** |
CN111355773B (zh) * | 2019-07-31 | 2023-01-31 | 深圳市鸿合创新信息技术有限责任公司 | 校园信息发布*** |
CN113472856A (zh) * | 2021-06-08 | 2021-10-01 | 北京城市网邻信息技术有限公司 | 一种消息推送处理方法、装置、电子设备及存储介质 |
CN115412519A (zh) * | 2022-08-29 | 2022-11-29 | 中国建设银行股份有限公司 | 消息传输方法、装置、服务器及存储介质 |
CN115412519B (zh) * | 2022-08-29 | 2024-05-03 | 中国建设银行股份有限公司 | 消息传输方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105978796A (zh) | 基于不稳定移动网络的消息通信方法及*** | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及***、消息服务*** | |
US9571409B2 (en) | Maximum transmission unit negotiation method and data terminal | |
CN111385268B (zh) | 一种数据包头压缩确认方法及通信设备 | |
CN102209039B (zh) | 一种文件传输方法及设备 | |
CN105282803A (zh) | 通讯接口和基于通讯接口的信息传递方法及*** | |
US20230300106A1 (en) | Data processing method, network element device and readable storage medium | |
CN105337973A (zh) | 消息交互方法及其*** | |
CN104796922A (zh) | Cse的触发管理方法及装置、cse、承载网网元 | |
CN107529229B (zh) | 数据传输的方法,装置及*** | |
CN103209195A (zh) | 数据获取方法、终端以及远端设备 | |
CN103516766B (zh) | 一种客户端与应用服务器间进行通信的方法和*** | |
CN107294830B (zh) | 一种数据传输方法及*** | |
CN108718274A (zh) | 一种即时通讯消息的防丢失方法 | |
CN107786607B (zh) | 一种消息重传方法、消息重传服务器及用户设备 | |
CN103648085A (zh) | 一种克服网络抖动的移动终端消息传递方法 | |
KR101007408B1 (ko) | 데이터 공유 기반 데이터 전송 방법 및 시스템 | |
CN108270876B (zh) | 一种信号***中代理服务器的实现方法 | |
CN106230747B (zh) | 恢复tcp连接序列号的方法、装置及*** | |
CN111064674B (zh) | 数据的传输方法及装置、*** | |
CN114385372A (zh) | 一种消息处理方法、装置及存储介质 | |
CN110890989A (zh) | 一种通道连接方法及装置 | |
CN101877862A (zh) | 大对象传输方法、服务器 | |
CN115150363B (zh) | Ip地址更新方法、网关设备、网关下挂设备和存储介质 | |
KR101319940B1 (ko) | 세션 릴레이 서버를 이용한 푸시 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160928 |