CN107547484B - 消息获取、推送的方法、设备及系统 - Google Patents
消息获取、推送的方法、设备及系统 Download PDFInfo
- Publication number
- CN107547484B CN107547484B CN201610490375.XA CN201610490375A CN107547484B CN 107547484 B CN107547484 B CN 107547484B CN 201610490375 A CN201610490375 A CN 201610490375A CN 107547484 B CN107547484 B CN 107547484B
- Authority
- CN
- China
- Prior art keywords
- message
- server
- synchronization
- version number
- client
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000001360 synchronised effect Effects 0.000 claims abstract description 11
- 239000013589 supplement Substances 0.000 abstract description 7
- 230000015654 memory Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 230000005291 magnetic effect Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请的目的是提供一种消息获取、推送的方法、设备及系统,本申请通过建立TCP长连接收发在线消息和http连接的方式收发离线消息两种方式配合,在采用TCP长连接的方式推送消息的基础上,采用HTTP推送消息的方式作为补充,实现客户端与服务器消息的同步更新,保证消息的稳定、可靠地获取,能够避免现有方案的消息推送时,仅通过TCP长连接的方式,由于TCP长连接不稳定,而造成的消息丢失的问题。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种消息获取、推送的方法、设备及系统。
背景技术
现有的消息推送方案在消息推送时,仅通过TCP长连接的方式进行消息推送,TCP长连接是客户端(client)向服务器(server)发起连接,server接受client连接,双方建立连接,client与server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接,但由于TCP长连接有时会不稳定,从而导致造成的消息丢失的问题。因此,目前亟需一种稳定、可靠的消息获取、推送的方法、设备及系统。
申请内容
本申请的一个目的是提供一种消息获取、推送的方法、设备及系统,能够解决现有方案的消息推送不稳定,导致消息丢失的问题。
根据本申请的一个方面,提供了一种在客户端用于消息获取的方法,该方法包括:
通过TCP长连接的方式与服务器进行消息同步,根据获取到的消息判断是否满足预设条件,
如果满足所述预设条件,通过TCP长连接的方式与服务器进行消息同步。
如果不满足所述预设条件,通过HTTP连接的方式与服务器进行消息同步。
进一步的,上述方法中,所述进行消息同步的步骤之后,还包括:
展示消息同步结果,其中,所述消息同步结果包括文字、图片、语音或视频中的一种或任意组合。
进一步的,上述方法中,所述文字由所述语音或视频转换得到,所述语音由所述文字转换得到。
进一步的,上述方法中,根据获取到的消息判断是否满足预设条件,包括:
根据从所述服务器接收到的消息是否连续判断是否满足预设条件,
若连续,则是满足预设条件;
若不连续,则不满足预设条件。
进一步的,上述方法中,根据从所述服务器接收到的消息是否连续判断是否满足预设条件,包括:
根据从所述服务器获取的当前一条消息的版本号与上一条消息的版本号是否连续判断是否进行消息同步。
进一步的,上述方法中,所述消息的版本号按正整数由小到大连续编号,根据从所述服务器获取的当前一条消息的版本号与本地版本号是否连续判断是否进行消息同步,包括:
根据从所述服务器获取的当前一条消息的版本号与本地版本号的差值是否等于1判断是否进行消息同步。
进一步的,上述方法中,通过TCP长连接的方式与服务器进行消息同步,包括:
通过TCP长连接的方式与服务器进行消息同步,并将获取到的当前一条消息的版本号更新为本地版本号。
进一步的,上述方法中,通过HTTP连接的方式与服务器进行消息同步,包括:
通过HTTP连接的方式向服务器请求和获取未连续获取过的消息。
进一步的,上述方法中,通过HTTP连接的方式与服务器进行消息同步,包括:
当满足同步触发条件时,通过HTTP连接的方式与服务器进行消息同步,并将获取到的最后一条消息的版本号更新为本地版本号。
进一步的,上述方法中,所述满足同步触发条件包括接收到同步消息的指令。
进一步的,上述方法中,所述同步消息的指令每隔预设时间生成。
根据本申请的另一方面,还提供一种在服务器端用于消息推送的方法,该方法包括:
通过TCP长连接的方式向客户端推送消息;
当获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则通过HTTP连接的方式向客户端推送消息。
进一步的,上述方法中,通过TCP长连接的方式向客户端推送消息之后,还包括:
当未获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则继续通过TCP长连接的方式向客户端推送消息。
进一步的,上述方法中,向客户端推送消息,包括:
向客户端推送带有版本号的消息。
进一步的,上述方法中,通过HTTP连接的方式向客户端推送消息,包括:
根据客户端的请求,向客户端推送客户端未连续获取过的消息。
根据本申请的另一方面,还提供了一种用于消息获取的客户端,该客户端包括:
判断模块,用于通过TCP长连接的方式与服务器进行消息同步,根据获取到的消息判断是否满足预设条件,
HTTP模块,用于如果满足所述预设条件,继续通过TCP长连接的方式与服务器进行消息同步;
如果不满足所述预设条件,通过HTTP连接的方式与服务器进行消息同步。
进一步的,上述客户端中,所述HTTP模块,还用于展示消息同步结果,其中,所述消息同步结果包括文字、图片、语音或视频中的一种或任意组合。
进一步的,上述客户端中,所述文字由所述语音或视频转换得到,所述语音由所述文字转换得到。
进一步的,上述客户端中,所述判断模块,用于根据从所述服务器接收到的消息是否连续判断是否满足预设条件,若连续,则是满足预设条件;若不连续,则不满足预设条件。
进一步的,上述客户端中,所述判断模块,用于根据从所述服务器获取的当前一条消息的版本号与上一条消息的版本号是否连续,判断是否进行消息同步。
进一步的,上述客户端中,所述判断模块,用于根据从所述服务器获取的当前一条消息的版本号与本地版本号的差值是否等于1,判断是否进行消息同步。
进一步的,上述客户端中,所述判断模块,还用于通过TCP长连接的方式与服务器进行消息同步,并将获取到的当前一条消息的版本号更新为本地版本号。
进一步的,上述客户端中,所述HTTP模块,用于通过HTTP连接的方式向服务器请求和获取未连续获取过的消息。
进一步的,上述客户端中,所述HTTP模块,用于当满足同步触发条件时,通过HTTP连接的方式与服务器进行消息同步,并将获取到的最后一条消息的版本号更新为本地版本号。
进一步的,上述客户端中,所述满足同步触发条件包括接收到同步消息的指令。
进一步的,上述客户端中,所述同步消息的指令每隔预设时间生成。
根据本申请的另一方面,还提供了一种用于消息推送的服务器,服务器包括:
TCP推送模块,用于通过TCP长连接的方式向客户端推送消息;
HTTP推送模块,用于当获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则通过HTTP连接的方式向客户端推送消息。
进一步的,上述服务器中,TCP推送模块,还用于当未获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则继续通过TCP长连接的方式向客户端推送消息。
进一步的,上述服务器中,TCP推送模块,用于通过TCP长连接的方式向客户端推送带有版本号的消息;
HTTP推送模块,用于通过HTTP连接的方式向客户端推送带有版本号的消息。
进一步的,上述服务器中,HTTP推送模块,用于根据客户端的请求,向客户端推送客户端未连续获取过的消息。
根据本申请的另一方面,还提供了一种用于消息推送的系统,该系统包括:
上述客户端;
上述服务器。
与现有技术相比,本申请通过建立TCP长连接收发在线消息和http连接的方式收发离线消息两种方式配合,在采用TCP长连接的方式推送消息的基础上,采用HTTP推送消息的方式作为补充,实现客户端与服务器消息的同步更新,保证消息的稳定、可靠地获取,能够避免现有方案的消息推送时,仅通过TCP长连接的方式,由于TCP长连接不稳定,而造成的消息丢失的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的在客户端用于消息获取的方法的流程图;
图2示出本申请在客户端用于消息获取的方法一优选实施例的流程图;
图3示出根据本申请另一个方面的一种在服务器端用于消息推送的方法的流程;
图4示出根据本申请在服务器端用于消息推送的方法的一优选实施的流程图;
图5示出根据本申请另一个方面的一种用于消息获取的客户端的模块图;
图6示出根据本申请另一个方面的一种用于消息推送的服务器的模块图;
图7示出根据本申请另一个方面的一种用于消息推送的系统的模块图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本申请提供一种在客户端用于消息获取的方法,该方法包括:
步骤S1,通过TCP长连接的方式与服务器进行消息同步,根据获取到的消息判断是否满足预设条件,
如果不满足所述预设条件,步骤S2,通过HTTP连接的方式与服务器进行消息同步;
如果满足所述预设条件,步骤S3,通过TCP长连接的方式与服务器进行消息同步。在此,若TCP长连接的方式继续可用,则可继续通过TCP长连接的方式与服务器进行消息同步,简单、高效。具体的,HTTP(超文本传输协议)是利用TCP在两台设备(通常是Web服务器和客户端)之间传输信息的协议,客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端,TCP长连接的方式适用于在线且连续消息的获取,HTTP连接的方式适用于离线消息的获取。本实施例通过建立TCP长连接收发在线消息和http连接的方式收发离线消息两种方式配合,在采用TCP长连接的方式推送消息的基础上,采用HTTP推送消息的方式作为补充,实现客户端与服务器消息的同步更新,保证消息的稳定、可靠地获取,能够避免现有方案的消息推送时,仅通过TCP长连接的方式,由于TCP长连接不稳定,而造成的消息丢失的问题。
步骤S2和步骤S3,所述进行消息同步的步骤之后,还包括:
展示消息同步结果,所述消息同步结果包括文字、图片、语音或视频中的一种或任意组合。较佳的,所述文字由所述语音或视频转换得到,所述语音由所述文字转换得到,从而以各种形式展示消息。
如图2所示,本申请的客户端用于消息获取的方法一优选的实施例中,步骤S1中,根据获取到的消息判断是否满足预设条件,包括:
步骤S11,根据从所述服务器接收到的消息是否连续判断是否满足预设条件,
若连续,步骤S12,则是满足预设条件;
若不连续,步骤S13,则不满足预设条件。在此,通过根据从所述服务器接收到的消息是否连续来判断是否进行消息同步,判断为进行消息同步时,则继续通过TCP长连接的方式获取消息,判断为不进行消息同步时,则继续通过HTTP连接的方式获取消息,从而可以保证准确切换HTTP连接或TCP长连接的发送方式。
本申请的客户端用于消息获取的方法一优选的实施例中,步骤S11,根据从所述服务器接收到的消息是否连续判断是否满足预设条件,包括:
步骤S111,根据从所述服务器获取的当前一条消息的版本号与上一条消息的版本号是否连续判断是否进行消息同步。在此,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号连续,则说明从所述服务器接收到的消息连续,需要进行消息同步,继续通过TCP长连接的方式与服务器进行消息同步,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号不连续,则说明从所述服务器接收到的消息不连续,不进行消息同步,通过HTTP连接的方式与服务器进行消息同步,本实施例通过版本号判断消息是否连续,使判断效率提高。
本申请的客户端用于消息获取的方法一优选的实施例中,所述消息的版本号按正整数由小到大连续编号,步骤S111,根据从所述服务器获取的当前一条消息的版本号与上一条消息的版本号是否连续判断是否进行消息同步,包括:
根据从所述服务器获取的当前一条消息的版本号与本地版本号的差值是否等于1判断是否进行消息同步。具体的,客户端与服务器已建立TCP长连接,服务器推送版本号消息经过消息路由找到对应客户端,当所述消息的版本号按正整数由小到大连续编号时,客户端收到消息后,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号的差值等于1,则说明从所述服务器接收到的消息连续,需要进行消息同步,继续通过TCP长连接的方式与服务器进行消息同步,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号的差值不等于1,则说明从所述服务器接收到的消息不连续,不进行消息同步,通过HTTP连接的方式与服务器进行消息同步,本实施例通过版本号的差值来判断,可进一步简化判断过程。
本申请的客户端用于消息获取的方法一优选的实施例中,步骤S1和S3中的,通过TCP长连接的方式与服务器进行消息同步,包括:
通过TCP长连接的方式与服务器进行消息同步,并将获取到的当前一条消息的版本号更新为本地版本号。具体的,例如收到的消息的版本号减去本地版本号等于1,说明从所述服务器接收到的消息连续,那么显示消息,并更新本地版本号,继续通过TCP长连接的方式与服务器进行消息同步,本实施例通过不断更新本地版本号,便于后续对消息是否连续的继续判断。
本申请的客户端用于消息获取的方法一优选的实施例中,步骤S2,通过HTTP连接的方式与服务器进行消息同步,包括:
通过HTTP连接的方式向服务器请求和获取未连续获取过的消息,从而保证在客户端已经连续获取过的消息,不再从服务器重复获取,避免浪费客户端与服务器之间的数据通信资源,及客户端与服务器上各自的数据处理资源。
本申请的客户端用于消息获取的方法一优选的实施例中,通过HTTP连接的方式与服务器进行消息同步,包括:
当满足同步触发条件时,通过HTTP连接的方式与服务器进行消息同步,并将获取到的最后一条消息的版本号更新为本地版本号。在此,满足同步触发条件可以包括客户端到达同步时机,只有在满足同步触发条件时,才通过HTTP连接的方式与服务器进行消息同步,从而可以节省网络通信资源,另外,通过将获取到的最后一条消息的版本号更新为本地版本号,例如,初始时,客户端默认版本号V0,表示还没有接收到服务器端的消息,客户端向服务器发送消息同步的请求,若服务器当前版本号V1,则向客户端发送版本号V1对应的同步消息,客户端获取服务器发送的版本号V1对应的同步消息,并更新自己的本地版本号,若客户端与服务器HTTP连接中断,随后一段时间,服务器从第三方获取了消息更新版本号V2、V3、V4,当客户端到达同步时机后,客户端再次向服务器请求同步消息时,服务器同时向客户端返回版本号为V2至V4的消息,客户端更新本地版号为V4,从而实现不断更新版本号,便于后续消息是否连续的继续判断。
本申请的客户端用于消息获取的方法一优选的实施例中,所述满足同步触发条件包括接收到同步消息的指令,从而实现根据同步消息的指令,每次在需要获取消息的时候才通过HTTP连接的方式与服务器进行消息同步,避免浪费通信资源。
本申请的客户端用于消息获取的方法一优选的实施例中,所述同步消息的指令每隔预设时间生成,从而实现每隔预设时间自动同步消息一次。
如图3所示,根据本申请的另一面,还提供一种在服务器端用于消息推送的方法,该方法包括:
步骤S4,通过TCP长连接的方式向客户端推送消息;
步骤S5,当获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则通过HTTP连接的方式向客户端推送消息。具体的,HTTP(超文本传输协议)是利用TCP在两台设备(通常是Web服务器和客户端)之间传输信息的协议,客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端,TCP长连接的方式适用于在线且连续消息的推送,HTTP连接的方式适用于离线消息的推送。本实施例通过建立TCP长连接收发在线消息和http连接的方式收发离线消息两种方式配合,在采用TCP长连接的方式推送消息的基础上,采用HTTP推送消息的方式作为补充,实现客户端与服务器消息的同步更新,保证消息的稳定、可靠地获取,能够避免现有方案的消息推送时,仅通过TCP长连接的方式,由于TCP长连接不稳定,而造成的消息丢失的问题。
如图4所示,本申请在服务器端用于消息推送的方法一优选的实施例中,通过TCP长连接的方式向客户端推送消息之后,还包括:
步骤S6,当未获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则继续通过TCP长连接的方式向客户端推送消息。在此,若TCP长连接的方式继续可用,则可继续通过TCP长连接的方式从服务器推送消息,简单、高效。
本申请在服务器端用于消息推送的方法一优选的实施例中,步骤S4和步骤S5中的,向客户端推送消息,包括:
向客户端推送带有版本号的消息,从而便于后续客户端通过版本号判断消息是否连续,进而根据消息是否连续判断是采用TCP长连接的方式,还是采用HTTP连接的方式获取消息。
本申请在服务器端用于消息推送的方法一优选的实施例中,步骤S5中的通过HTTP连接的方式向客户端推送消息,包括:
根据客户端的请求,向客户端推送客户端未连续获取过的消息,从而保证在客户端已经连续获取过的消息,不再从服务器重复获取,避免浪费客户端与服务器之间的数据通信资源,及客户端与服务器上各自的数据处理资源。
如图5所示,根据本申请的另一面,还提供一种用于消息获取的客户端,其中,该客户端100包括:
判断模块1,用于通过TCP长连接的方式与服务器进行消息同步,根据获取到的消息判断是否满足预设条件,
HTTP模块2,用于如果不满足所述预设条件,通过HTTP连接的方式与服务器进行消息同步;
所述判断模块1,还用于如果满足所述预设条件,继续通过TCP长连接的方式与服务器进行消息同步。在此,若TCP长连接的方式继续可用,则可继续通过TCP长连接的方式与服务器进行消息同步,简单、高效。具体的,HTTP(超文本传输协议)是利用TCP在两台设备(通常是Web服务器和客户端)之间传输信息的协议,客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端,TCP长连接的方式适用于在线且连续消息的获取,HTTP连接的方式适用于离线消息的获取。本实施例通过建立TCP长连接收发在线消息和http连接的方式收发离线消息两种方式配合,在采用TCP长连接的方式推送消息的基础上,采用HTTP推送消息的方式作为补充,实现客户端与服务器消息的同步更新,保证消息的稳定、可靠地获取,能够避免现有方案的消息推送时,仅通过TCP长连接的方式,由于TCP长连接不稳定,而造成的消息丢失的问题。
本申请的用于消息获取的客户端一优选的实施例中,所述判断模块和HTTP模块,还用于展示消息同步结果,其中,所述消息同步结果包括文字、图片、语音或视频中的一种或任意组合。较佳的,所述文字由所述语音或视频转换得到,所述语音由所述文字转换得到,从而实现以各种形式示消息。
本申请的用于消息获取的客户端一优选的实施例中,所述判断模块1,用于根据从所述服务器接收到的消息是否连续判断是否满足预设条件,若连续,则是满足预设条件;若不连续,则不满足预设条件。在此,通过根据从所述服务器接收到的消息是否连续来判断是否进行消息同步,判断为进行消息同步时,则继续通过TCP长连接的方式获取消息,判断为不进行消息同步时,则继续通过HTTP连接的方式获取消息,从而可以保证准确切换HTTP连接或TCP长连接的发送方式。
本申请的用于消息获取的客户端一优选的实施例中,所述判断模块1,用于根据从所述服务器获取的当前一条消息的版本号与上一条消息的版本号是否连续判断是否进行消息同步。在此,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号连续,则说明从所述服务器接收到的消息连续,需要进行消息同步,继续通过TCP长连接的方式与服务器进行消息同步,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号不连续,则说明从所述服务器接收到的消息不连续,不进行消息同步,通过HTTP连接的方式与服务器进行消息同步,本实施例通过版本号判断消息是否连续,使判断效率提高。
本申请的用于消息获取的客户端一优选的实施例中,所述判断模块1,用于根据从所述服务器获取的当前一条消息的版本号与本地版本号的差值是否等于1判断是否进行消息同步。具体的,客户端与服务器已建立TCP长连接,服务器推送版本号消息经过消息路由找到对应客户端,当所述消息的版本号按正整数由小到大连续编号时,客户端收到消息后,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号的差值等于1,则说明从所述服务器接收到的消息连续,需要进行消息同步,继续通过TCP长连接的方式与服务器进行消息同步,若从所述服务器获取的当前一条消息的版本号与上一条消息的版本号的差值不等于1,则说明从所述服务器接收到的消息不连续,不进行消息同步,通过HTTP连接的方式与服务器进行消息同步,本实施例通过版本号的差值来判断,可进一步简化判断过程。
本申请的用于消息获取的客户端一优选的实施例中,所述判断模块1,还用于通过TCP长连接的方式与服务器进行消息同步,并将获取到的当前一条消息的版本号更新为本地版本号。具体的,例如收到的消息的版本号减去本地版本号等于1,说明从所述服务器接收到的消息连续,那么显示消息,并更新本地版本号,继续通过TCP长连接的方式与服务器进行消息同步,本实施例通过不断更新本地版本号,便于后续对消息是否连续的继续判断。
本申请的用于消息获取的客户端一优选的实施例中,所述HTTP模块2,用于通过HTTP连接的方式向服务器请求和获取未连续获取过的消息,从而保证在客户端已经连续获取过的消息,不再从服务器重复获取,避免浪费客户端与服务器之间的数据通信资源,及客户端与服务器上各自的数据处理资源。
本申请的用于消息获取的客户端一优选的实施例中,所述HTTP模块2,用于当满足同步触发条件时,通过HTTP连接的方式与服务器进行消息同步,并将获取到的最后一条消息的版本号更新为本地版本号。在此,满足同步触发条件可以包括客户端到达同步时机,只有在满足同步触发条件时,才通过HTTP连接的方式与服务器进行消息同步,从而可以节省网络通信资源,另外,通过将获取到的最后一条消息的版本号更新为本地版本号,例如,初始时,客户端默认版本号V0,表示还没有接收到服务器端的消息,客户端向服务器发送消息同步的请求,若服务器当前版本号V1,则向客户端发送版本号V1对应的同步消息,客户端获取服务器发送的版本号V1对应的同步消息,并更新自己的本地版本号,若客户端与服务器HTTP连接中断,随后一段时间,服务器从第三方获取了消息更新版本号V2、V3、V4,当客户端到达同步时机后,客户端再次向服务器请求同步消息时,服务器同时向客户端返回版本号为V2至V4的消息,客户端更新本地版号为V4,从而实现不断更新版本号,便于后续消息是否连续的继续判断。
本申请的用于消息获取的客户端一优选的实施例中,所述满足同步触发条件包括接收到同步消息的指令,从而实现根据同步消息的指令,每次在需要获取消息的时候才通过HTTP连接的方式与服务器进行消息同步,避免浪费通信资源。
本申请的用于消息获取的客户端一优选的实施例中,所述同步消息的指令每隔预设时间生成,从而实现每隔预设时间自动同步消息一次。
如图6所示,根据本申请的另一面,还提供一种用于消息推送的服务器200,该服务器包括:
TCP推送模块3,用于通过TCP长连接的方式向客户端推送消息;
HTTP推送模块4,用于当获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则通过HTTP连接的方式向客户端推送消息。具体的,HTTP(超文本传输协议)是利用TCP在两台设备(通常是Web服务器和客户端)之间传输信息的协议,客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端,TCP长连接的方式适用于在线且连续消息的推送,HTTP连接的方式适用于离线消息的推送。本实施例通过建立TCP长连接收发在线消息和http连接的方式收发离线消息两种方式配合,在采用TCP长连接的方式推送消息的基础上,采用HTTP推送消息的方式作为补充,实现客户端与服务器消息的同步更新,保证消息的稳定、可靠地获取,能够避免现有方案的消息推送时,仅通过TCP长连接的方式,由于TCP长连接不稳定,而造成的消息丢失的问题。
本申请的消息推送的服务器一优选的实施例中,TCP推送模块3,还用于当未获取到客户端通过HTTP连接的方式与服务器进行消息同步的请求时,则继续通过TCP长连接的方式向客户端推送消息。在此,若TCP长连接的方式继续可用,则可继续通过TCP长连接的方式从服务器推送消息,简单、高效。
本申请的消息推送的服务器一优选的实施例中,TCP推送模块3,用于通过TCP长连接的方式向客户端推送带有版本号的消息;
HTTP推送模块4,用于通过HTTP连接的方式向客户端推送带有版本号的消息,从而便于后续客户端通过版本号判断消息是否连续,进而根据消息是否连续判断是采用TCP长连接的方式,还是采用HTTP连接的方式获取消息。
本申请的消息推送的服务器一优选的实施例中,HTTP推送模块4,用于根据客户端的请求,向客户端推送客户端未连续获取过的消息,从而保证在客户端已经连续获取过的消息,不再从服务器重复获取,避免浪费客户端与服务器之间的数据通信资源,及客户端与服务器上各自的数据处理资源。
如图7所示,根据本申请的另一面,还提供一种用于消息推送的系统300,包括:
如权利要求上述用于消息获取的客户端100;
如权利要求上述用于消息推送的服务器200。
详细的,本申请的可应用场景可包括:
1.所述消息推送可以结合OTO信息推送具体的,“OTO”是“Online To Offline”的简写,即“线上到线下”,OTO商业模式的核心很简单,就是把线上的消费者带到现实的商店中去,在线支付购买线上的商品和服务,再到线下去享受服务。例如,用户可通过某商铺的WIFI网络获取该商铺的优惠信息,因为使用WIFI网络从而会节省流量,然后根据获取到的优惠信息在该商铺进行有针对的消费。
2.所述消息推送还可以结合新闻推送,此时,客户端打开相应的应用,即对应保持TCP长连接,获取消息,当收到的新闻消息不连续时,则通过HTTP连接的方式获取新闻消息。
综上所述,本申请通过建立TCP长连接收发在线消息和http连接的方式收发离线消息两种方式配合,在采用TCP长连接的方式推送消息的基础上,采用HTTP推送消息的方式作为补充,实现客户端与服务器消息的同步更新,保证消息的稳定、可靠地获取,能够避免现有方案的消息推送时,仅通过TCP长连接的方式,由于TCP长连接不稳定,而造成的消息丢失的问题。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种在客户端用于消息同步的方法,其中,该方法包括:
通过TCP长连接的方式与服务器进行消息同步,根据获取到的消息判断是否满足预设条件,
如果满足所述预设条件,通过TCP长连接的方式与服务器进行消息同步;
如果不满足所述预设条件,通过HTTP连接的方式与服务器进行消息同步;
所述进行消息同步的步骤之后,还包括:
展示消息同步结果,其中,所述消息同步结果包括文字、图片、语音或视频中的一种或任意组合;
根据获取到的消息判断是否满足预设条件,包括:
根据从所述服务器接收到的消息是否连续判断是否满足预设条件,
若连续,则是满足预设条件;
若不连续,则不满足预设条件;
通过HTTP连接的方式与服务器进行消息同步,包括:
当满足同步触发条件时,通过HTTP连接的方式与服务器进行消息同步,并将获取到的最后一条消息的版本号更新为本地版本号;
所述满足同步触发条件包括接收到同步消息的指令;
所述同步消息的指令每隔预设时间生成;
根据从所述服务器接收到的消息是否连续判断是否满足预设条件,包括:
根据从所述服务器获取的当前一条消息的版本号与上一条消息的版本号是否连续判断是否进行消息同步。
2.根据权利要求1所述的方法,其中,所述文字由所述语音或视频转换得到,所述语音由所述文字转换得到。
3.根据权利要求1所述的方法,其中,所述消息的版本号按正整数由小到大连续编号,根据从所述服务器获取的当前一条消息的版本号与本地版本号是否连续判断是否进行消息同步,包括:
根据从所述服务器获取的当前一条消息的版本号与本地版本号的差值是否等于1判断是否进行消息同步。
4.根据权利要求1所述的方法,其中,通过TCP长连接的方式与服务器进行消息同步,包括:
通过TCP长连接的方式与服务器进行消息同步,并将获取到的当前一条消息的版本号更新为本地版本号。
5.根据权利要求1所述的方法,其中,通过HTTP连接的方式与服务器进行消息同步,包括:
通过HTTP连接的方式向服务器请求和获取未连续获取过的消息。
6.一种用于消息获取的客户端,其中,该客户端包括:
判断模块,用于通过TCP长连接的方式与服务器进行消息同步,根据获取到的消息判断是否满足预设条件,
如果满足所述预设条件,通过TCP长连接的方式与服务器进行消息同步;
HTTP模块,用于如果不满足所述预设条件,通过HTTP连接的方式与服务器进行消息同步;
所述判断模块和HTTP模块,还用于展示消息同步结果,其中,所述消息同步结果包括文字、图片、语音或视频中的一种或任意组合;
所述判断模块,用于根据从所述服务器接收到的消息是否连续判断是否满足预设条件,若连续,则是满足预设条件;若不连续,则不满足预设条件;
所述HTTP模块,用于当满足同步触发条件时,通过HTTP连接的方式与服务器进行消息同步,并将获取到的最后一条消息的版本号更新为本地版本号;
所述满足同步触发条件包括接收到同步消息的指令;
所述同步消息的指令每隔预设时间生成;
所述判断模块,用于根据从所述服务器获取的当前一条消息的版本号与上一条消息的版本号是否连续,判断是否进行消息同步。
7.根据权利要求6所述的客户端,其中,所述文字由所述语音或视频转换得到,所述语音由所述文字转换得到。
8.根据权利要求6所述的客户端,其中,所述判断模块,用于根据从所述服务器获取的当前一条消息的版本号与本地版本号的差值是否等于1,判断是否进行消息同步。
9.根据权利要求6所述的客户端,其中,所述判断模块,还用于通过TCP长连接的方式与服务器进行消息同步,并将获取到的当前一条消息的版本号更新为本地版本号。
10.根据权利要求6所述的客户端,其中,所述HTTP模块,用于通过HTTP连接的方式向服务器请求和获取未连续获取过的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610490375.XA CN107547484B (zh) | 2016-06-29 | 2016-06-29 | 消息获取、推送的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610490375.XA CN107547484B (zh) | 2016-06-29 | 2016-06-29 | 消息获取、推送的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547484A CN107547484A (zh) | 2018-01-05 |
CN107547484B true CN107547484B (zh) | 2021-05-07 |
Family
ID=60963078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610490375.XA Active CN107547484B (zh) | 2016-06-29 | 2016-06-29 | 消息获取、推送的方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547484B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022329B (zh) * | 2018-01-08 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 文件传输方法、装置、计算机可读存储介质及计算机设备 |
CN108200183A (zh) * | 2018-01-11 | 2018-06-22 | 武汉天喻教育科技有限公司 | 一种教育云信息的推送方法和推送系统 |
CN110324677B (zh) * | 2018-03-30 | 2021-09-07 | 武汉斗鱼网络科技有限公司 | 一种弹幕服务器连接方法、客户端及可读存储介质 |
CN110324642B (zh) * | 2018-03-30 | 2021-07-23 | 武汉斗鱼网络科技有限公司 | 一种弹幕服务器连接方法、客户端及可读存储介质 |
CN108366277B (zh) * | 2018-03-30 | 2021-06-15 | 武汉斗鱼网络科技有限公司 | 一种弹幕服务器连接方法、客户端及可读存储介质 |
CN110324229B (zh) * | 2018-03-30 | 2022-04-12 | 武汉斗鱼网络科技有限公司 | 一种弹幕服务器连接方法、客户端及可读存储介质 |
CN110324391B (zh) * | 2018-03-30 | 2022-03-25 | 武汉斗鱼网络科技有限公司 | 一种弹幕服务器连接方法、客户端及可读存储介质 |
CN109040326A (zh) * | 2018-11-02 | 2018-12-18 | 北京京东金融科技控股有限公司 | 推送消息的方法和装置 |
CN111901366B (zh) * | 2019-05-06 | 2023-08-29 | 广州市百果园信息技术有限公司 | 一种数据推送方法、装置、设备和存储介质 |
CN110661889B (zh) * | 2019-11-06 | 2023-06-02 | 杭州涂鸦信息技术有限公司 | 一种iOS端的推送消息同步与补偿方法及系统 |
CN112637314A (zh) * | 2020-12-17 | 2021-04-09 | 深圳市和讯华谷信息技术有限公司 | 消息同步方法、系统、第一终端设备、服务端和介质 |
CN112583926B (zh) * | 2020-12-23 | 2023-04-07 | 平安银行股份有限公司 | 短连切换方法、系统、计算机设备和存储介质 |
CN114511273A (zh) * | 2022-03-16 | 2022-05-17 | 湖南兴盛优选电子商务有限公司 | 一种零售仓储管理系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297934A (zh) * | 2013-03-04 | 2013-09-11 | 东莞宇龙通信科技有限公司 | 信息推送方法、系统和移动终端 |
CN104184599A (zh) * | 2013-05-21 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 基于日志级别的日志文件上传方法及装置 |
CN104462200A (zh) * | 2014-10-31 | 2015-03-25 | 北京思特奇信息技术股份有限公司 | 一种通过第三方数据库控制系统切换的方法及系统 |
CN104796387A (zh) * | 2014-01-21 | 2015-07-22 | 腾讯科技(深圳)有限公司 | 一种网络长连接的通信方法及装置 |
CN105610913A (zh) * | 2015-12-22 | 2016-05-25 | 用友网络科技股份有限公司 | 通信网络中长连接的心跳保活方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100401839C (zh) * | 2004-11-28 | 2008-07-09 | 中兴通讯股份有限公司 | 一种无线通信网络系统定位业务接口的实现方法 |
CN101588393B (zh) * | 2009-07-02 | 2013-06-05 | 杭州华三通信技术有限公司 | 一种基于实时会话状态管理的方法、装置及系统 |
CN102045325B (zh) * | 2009-10-13 | 2014-02-05 | 北京搜狗科技发展有限公司 | 一种基于网络通信的输入方法及系统 |
KR101510432B1 (ko) * | 2010-12-22 | 2015-04-10 | 한국전자통신연구원 | 트래픽 분석 장치 |
US8504519B1 (en) * | 2012-06-27 | 2013-08-06 | Dropbox, Inc. | Determining a preferred modified version from among multiple modified versions for synchronized files |
CN103685396B (zh) * | 2012-09-14 | 2017-04-19 | 北京神州泰岳软件股份有限公司 | 一种实现消息推送的方法和系统 |
CN104486291B (zh) * | 2014-11-24 | 2018-08-17 | 北京奇安信科技有限公司 | 建立连接的方法、装置及系统 |
CN104468547B (zh) * | 2014-11-28 | 2019-03-15 | 北京奇安信科技有限公司 | 建立长连接的方法、装置及系统 |
-
2016
- 2016-06-29 CN CN201610490375.XA patent/CN107547484B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297934A (zh) * | 2013-03-04 | 2013-09-11 | 东莞宇龙通信科技有限公司 | 信息推送方法、系统和移动终端 |
CN104184599A (zh) * | 2013-05-21 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 基于日志级别的日志文件上传方法及装置 |
CN104796387A (zh) * | 2014-01-21 | 2015-07-22 | 腾讯科技(深圳)有限公司 | 一种网络长连接的通信方法及装置 |
CN104462200A (zh) * | 2014-10-31 | 2015-03-25 | 北京思特奇信息技术股份有限公司 | 一种通过第三方数据库控制系统切换的方法及系统 |
CN105610913A (zh) * | 2015-12-22 | 2016-05-25 | 用友网络科技股份有限公司 | 通信网络中长连接的心跳保活方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107547484A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107547484B (zh) | 消息获取、推送的方法、设备及系统 | |
US10356156B2 (en) | Method and device for loading webpage | |
US10860280B2 (en) | Display method and device | |
JP2018513441A (ja) | 画像の重畳しようとする領域の決定、画像重畳、画像表示方法及び装置 | |
CN111163336B (zh) | 视频资源推送方法、装置、电子设备及计算机可读介质 | |
TW201528178A (zh) | 資訊展示的方法及裝置 | |
CN104199728A (zh) | 图片传送信息展示方法和装置 | |
CN111240614A (zh) | 投屏处理方法、装置和设备 | |
WO2017071356A1 (zh) | 一种基于客户端的网络数据同步的方法、装置以及系统 | |
CN110875947A (zh) | 一种数据处理方法和边缘节点设备 | |
CN115209215A (zh) | 视频处理方法、装置及设备 | |
CN104639973B (zh) | 一种信息推送方法及装置 | |
CN108124273A (zh) | 一种信息获取的方法、设备及介质 | |
US9582561B2 (en) | Size-based data synchronization | |
CN112148744A (zh) | 页面展示方法、装置、电子设备和计算机可读介质 | |
CN112636971B (zh) | 一种服务降级方法、装置、电子设备及存储介质 | |
CN109167830B (zh) | 一种监控数据的获取方法和装置 | |
CN105872004A (zh) | 一种针对终端的信息推送方法及装置 | |
CN111225255A (zh) | 目标视频推送播放方法、装置、电子设备及存储介质 | |
CN112084441A (zh) | 信息检索方法、装置和电子设备 | |
WO2017024976A1 (zh) | 实时信息的展现方法和装置 | |
CN112800074B (zh) | 离线数据管理方法、装置、终端设备、系统及可读介质 | |
CN111385599A (zh) | 视频处理方法和装置 | |
CN114997124A (zh) | 表格内容处理方法、装置、设备、存储介质 | |
US11526926B2 (en) | Service data processing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231114 Address after: 200240 building 41, 398 Heqing Road, Minhang District, Shanghai Patentee after: Shanghai Chenlian Technology Co.,Ltd. Address before: 201306 N2025 room 24, 2 New Town Road, mud town, Pudong New Area, Shanghai Patentee before: SHANGHAI LIANSHANG NETWORK TECHNOLOGY Co.,Ltd. |