CN104954446B - 消息推送方法及*** - Google Patents
消息推送方法及*** Download PDFInfo
- Publication number
- CN104954446B CN104954446B CN201510284553.9A CN201510284553A CN104954446B CN 104954446 B CN104954446 B CN 104954446B CN 201510284553 A CN201510284553 A CN 201510284553A CN 104954446 B CN104954446 B CN 104954446B
- Authority
- CN
- China
- Prior art keywords
- message
- client
- server
- offline
- response
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种消息推送方法及***,该方法包括:获取消息,并根据时间先后对所述消息编号得到编号消息;从预先存储的客户端列表中获取客户端;向所述客户端发送所述编号消息;所述客户端接收所述编号消息并做出应答;当有多条编号消息需要发送时,所述客户端对第一条和最后一条编号消息做出应答。通过采用本发明所公开的消息推送方法及***,既保障了消息的到达率又解决了每条消息必须应答带来效率低下问题,实现了消息准确高效到达客户端的目的;此外在客户端不在线时能够在下次上线时读取离线消息,每条消息都确认应答后删除,所以在其他客户端处理的信息不会被客户端接收为离线信息。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种消息推送方法及***。
背景技术
移动互联网是当今世界发展最快、市场潜力最大、前景最诱人的划时代产业,正逐渐改变人们的生活与工作方式互联网。移动互联网与传统互联网行业最大的不同是移动的特性,而消息推送是移动应用最重要的功能之一,是实现移动业务实时、准确地传递信息给有效客户群的最好方式。
现有技术中,消息推送常见的模式有:(1)“网播”,可以认为是广播模式在互联网的应用和发展。这种模式及时性好,信源及时地向用户推送不断更新的动态消息。因为使用广播模式相同消息只需发送一条消息,订阅用户均收到消息。(2)“发送-应答”:该模式针对用户定制化需求,消息发送给指定用户,而且为了确定消息到达,需要客户端收到服务端的消息后“应答”,告知服务端消息确认到达,否则服务端会再次重新发送该消息。
“网播”没有针对性,对推送消息是否及时准确到达指定用户没有保障,不能满足客户个性需求的定制化,且不能确保消息在特殊情况的准确到达以及重新发送。“发送-应答”对每次的消息均需要“发送-等待应答-应答”的过程,当有多条消息需要发送时,消息发送效率低下,不能及时地向用户推送不断更新的动态消息。
发明内容
本发明所要解决的技术问题是如何实现消息准确高效的到达客户端。
为此目的,本发明提出了一种消息推送方法,该方法包括:获取消息,并根据时间先后对所述消息编号得到编号消息;
从预先存储的客户端列表中获取客户端;
向所述客户端发送所述编号消息;
所述客户端接收所述编号消息并做出应答;
当有多条编号消息需要发送时,所述客户端对第一条和最后一条编号消息做出应答。
优选地,所述客户端接收所述编号消息并做出应答还包括:记录接收所述编号消息的时间戳。
优选地,所述向所述客户端发送所述编号消息之后还包括:
所述客户端无应答,服务端将所述消息标记为离线消息;
所述客户端再次上线时,所述客户端获取本地时间戳,并根据所述接受消息的时间戳去所述服务端读取所述离线消息,并作出应答。
优选地,该方法还包括:若所述接收消息的时间戳为空,所述客户端读取所有所述离线消息。
优选地,所述客户端读取所述离线消息后,还包括:
将状态修改为在线,不再读取离线消息。
优选地,所述获取消息后,将所述消息保存在服务端的缓存中。
优选地,所述客户端接收所述编号消息并做出应答之后还包括:服务端删除所述应答后的消息。
另一方面,本发明还提供了一种消息推送***,该***包括:服务端和客户端;
所述服务端与所述客户端通信连接;
所述服务端获取消息,并根据时间先后对所述消息进行编号得到编号消息;所述服务端从预先存储的客户端列表中获取客户端;所述服务端按编号向所述客户端发送所述编号消息;
所述客户端接收所述编号消息并做出应答;
所述客户端接收到有多条消息时,所述客户端对第一条和最后一条消息做出应答。
优选地,所述客户端包括时间戳记录单元,所述时间戳记录单元用于记录接收所述编号消息的时间戳。
优选地,所述服务端包括消息发送记录单元,所述消息发送记录单元用于在所述服务端按编号向所述客户端发送所述编号后的消息后,记录所述客户端的应答状态;如果所述客户端无应答,所述服务端将所述编号后的消息标记为离线消息;
所述客户端包括消息读取单元,所述消息读取单元用于在所述客户端再次上线时,获取本地时间戳,并根据所述接收编号后的消息的时间戳去所述服务端读取所述离线消息,并作出应答。
通过采用本发明所公开的消息推送方法及***,不再针对每条消息一一应答,当客户端接收多条消息时,只对第一条以及最后一条消息做出应答,应答第一条消息为了表示客户端在线,应答最后一条消息表示在最后一条消息之前的消息均已收到,既保障了消息的到达率又解决了每条消息必须应答带来效率低下问题,实现了消息准确高效到达客户端的目的;此外在客户端不在线时能够在下次上线时读取离线消息,每条消息都确认应答后删除,所以在其他客户端处理的信息不会被客户端接收为离线信息,这样保障了用户消息不在线时消息也不会丢失,已经接收的消息不会重复接受,不仅方便用户的使用,还能够节省数据传输资源。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明多条消息推送方法的流程示意图;
图2示出了本发明多条消息应答过程的示意图;
图3示出了本发明客户端在线消息推送过程的流程示意图;
图4示出了本发明客户端离线消息推送过程的流程示意图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
如图1所示本发明多条消息推送方法的流程图,该方法包括:获取消息,并根据时间先后对所述消息编号得到编号消息;从预先存储的客户端列表中获取客户端;向所述客户端发送所述编号消息;所述客户端接收所述编号消息并做出应答;当有多条编号消息需要发送时,所述客户端对第一条和最后一条编号消息做出应答。下面结合具体的实施例对本发明提供的多条消息推送方法展开详细说明。
实施例1
如图1,2,3所示,本发明消息推送方法包括如下步骤:
1)服务端获取消息,服务端获取消息后将消息保存在缓存中,缓存的作用是记录本次消息,然后对消息根据时间先后进行编号得到编号消息(例如根据时间先后顺序,依次编号为100、101、102、103、……、N),编号消息保证消息的顺序,群发模式采用同样的流程;
2)服务端从预先存储的客户端列表中获取客户端。具体地,服务端获取预先存储的客户端列表中的客户端信息(例如IP,移动端tokey等)。客户端列表一般由客户端初始安装时获取,当客户端变动时会更新客户端列表。3)客户端通过socket(对TCP/IP协议的封装和应用)监听本地端口(例如12010端口或12011端口)判断是否有服务端过来连接;
3)服务端向客户端发送编号消息中的第一条消息;
4)客户端接收第一条消息,记录接收第一条消息的时间戳。消息接收完毕后客户端向服务端对第一条消息做出应答,应答内容可以为当前接收到的编号消息的编号(例如100)。时间戳用于记录当前接收消息的正常接收时间;
5)如果服务端只发送一条消息,服务端收到客户端的对已经收到的消息的应答后,服务端删除缓存中已经收到的消息;
6)如果服务端有多条消息需要发送,服务端收到客户端的对已经收到的消息的应答后,服务端向客户端依次发送其他的编号消息,并标记最后一条消息;
7)客户端接收依次发送的其他编号消息,根据标记判断是否需要应答,记录接收到每条消息的消息编号和消息的时间戳;
8)客户端接收最后一条消息,记录接收最后一条消息的时间戳,应答消息,应答内容可以为最后一条消息的消息编号,例如104;
9)服务端收到应答的消息编号,根据消息编号,删除缓存中第一条至最后一条的所有消息;
10)在预设时间内,如果客户端对最后一条消息没有做出应答,服务端再次发送编号消息中的所有消息。直到客户端对最后一条消息做出应答,服务端删除缓存中已经接收的所有消息。
实施例2
如图4所示,客户端离线后又上线时,消息推送方法步骤如下:
1)服务端获取消息,服务端获取消息后将消息保存在缓存中,缓存的作用是记录本次消息,然后对消息根据时间先后进行编号得到编号消息(例如根据时间先后顺序,依次编号为100、101、102、103、……、N),编号消息保证消息的顺序,群发模式采用同样的流程;
2)服务端从预先存储的客户端列表中获取客户端;
3)服务端向客户端发送编号消息中的第一条消息;
4)客户端无应答,表示客户端不在线,服务端将编号消息标记为离线消息;
5)客户端再次与服务端连接时,获取本地的时间,根据最后一次接收消息的时间戳,向服务端发送读取离线消息的请求,服务端根据最后一次接收消息的时间戳和存储中的离线消息,依据离线消息的编号,按照编号的时间先后,逐条将离线消息返回给客户端,客户端读取离线消息,对离线消息的第一条和最后一条消息做出应答,应答内容优选为第一条和最后一条消息的消息编号;如果没有时间戳,则客户端读取所有的离线消息,做出应答;
6)客户端接收离线消息后,将状态修改为在线,表示所有的离线消息已经接受完毕。客户端不再主动读取离线消息;
7)服务端接收应答,删除缓存中已经被接收的离线消息。
其中,服务端发送离线消息到客户端的接口与服务端发送消息到客户端的接口相同。
其中,传递的消息采用统一的通信协议,即:传递的消息数据采用统一的数据封装格式,所定义的数据封装格式如表1所示:
表1数据封装格式表
Type | MsgID | Length | Data |
表一中,Type表示消息的类型,MsgID表示消息的序号,Length表示数据包长度,Date就是消息包的内容。
其中,Type占用两个字节,消息的类型包括:发送消息,应答消息;MsgID占用4个字节;Length占用4个字节。
实施例3
本发明另一方面提供了一种消息推送***,包括:服务端和客户端;所述服务端与所述客户端通信连接;所述服务端获取消息,将消息保存在缓存中,并根据时间先后对所述消息进行编号得到编号消息;所述服务端从预先存储的客户端列表中获取客户端;所述服务端按编号向所述客户端发送所述编号消息;所述客户端接收所述编号消息并做出应答;所述客户端接收到有多条消息时,所述客户端对第一条和最后一条消息做出应答。
优选地,所述客户端包括时间戳记录单元,所述时间戳记录单元用于记录接收所述编号消息的时间戳。
优选地,所述服务端包括消息发送记录单元,所述消息发送记录单元用于在所述服务端按编号向所述客户端发送所述编号后的消息后,记录所述客户端的应答状态;如果所述客户端无应答,所述服务端将所述编号后的消息标记为离线消息;
所述客户端包括消息读取单元,所述消息读取单元用于在所述客户端再次上线时,获取本地时间戳,并根据所述接收编号后的消息的时间戳去所述服务端读取所述离线消息,并作出应答。
优选地,服务端接收应答后删除缓存中对应的消息。
通过采用本发明所公开的消息推送方法及***,不再针对每条消息一一应答,当客户端接收多条消息时,只对第一条以及最后一条消息做出应答,应答第一条消息为了表示客户端在线,应答最后一条消息表示在最后一条消息之前的消息均已收到,既保障了消息的到达率又解决了每条消息必须应答带来效率低下问题,实现了消息准确高效到达客户端的目的;此外在客户端不在线时能够在下次上线时读取离线消息,每条消息都确认应答后删除,所以在其他客户端处理的信息不会被客户端接收为离线信息,这样保障了用户消息不在线时消息也不会丢失,已经接收的消息不会重复接受,不仅方便用户的使用,还能够节省数据传输资源。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (6)
1.一种消息推送方法,其特征在于,包括:
获取消息,并根据时间先后对所述消息编号得到编号消息;
从预先存储的客户端列表中获取客户端;
向所述客户端发送所述编号消息;
所述客户端接收所述编号消息并做出应答;
当有多条编号消息需要发送时,所述客户端对第一条和最后一条编号消息做出应答;
当收到应答的消息编号,根据消息编号,删除缓存中第一条至最后一条的所有编号消息;
所述客户端接收所述编号消息并做出应答还包括:记录接收所述编号消息的时间戳;
所述向所述客户端发送所述编号消息之后还包括:
所述客户端无应答,服务端将所述消息标记为离线消息;
所述客户端再次上线时,所述客户端获取本地时间戳,并根据所述接收 消息的时间戳去所述服务端读取所述离线消息,并作出应答。
2.根据权利要求1所述的消息推送方法,其特征在于,还包括:若所述接收消息的时间戳为空,所述客户端读取所有所述离线消息。
3.根据权利要求1所述的消息推送方法,其特征在于,所述客户端读取所述离线消息后,还包括:
将状态修改为在线,不再读取离线消息。
4.根据权利要求1所述的消息推送方法,其特征在于,所述获取消息后,将所述消息保存在服务端的缓存中。
5.根据权利要求1所述的消息推送方法,其特征在于,所述客户端接收所述编号消息并做出应答之后还包括:服务端删除所述应答后的消息。
6.一种消息推送***,其特征在于,包括:服务端和客户端;
所述服务端与所述客户端通信连接;
所述服务端获取消息,并根据时间先后对所述消息进行编号得到编号消息;所述服务端从预先存储的客户端列表中获取客户端;所述服务端按编号向所述客户端发送所述编号消息;
所述客户端接收所述编号消息并做出应答;
所述客户端接收到有多条消息时,所述客户端对第一条和最后一条消息做出应答;
服务端接收应答后删除第一条至最后一条的所有消息;
所述客户端包括时间戳记录单元,所述时间戳记录单元记录接收所述编号消息的时间戳;
所述服务端包括消息发送记录单元,所述消息发送记录单元用于在所述服务端按编号向所述客户端发送所述编号后的消息后,记录所述客户端的应答状态;如果所述客户端无应答,所述服务端将所述编号后的消息标记为离线消息;
所述客户端包括消息读取单元,所述消息读取单元用于在所述客户端再次上线时,获取本地时间戳,并根据所述接收编号后的消息的时间戳去所述服务端读取所述离线消息,并作出应答。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510284553.9A CN104954446B (zh) | 2015-05-28 | 2015-05-28 | 消息推送方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510284553.9A CN104954446B (zh) | 2015-05-28 | 2015-05-28 | 消息推送方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104954446A CN104954446A (zh) | 2015-09-30 |
CN104954446B true CN104954446B (zh) | 2019-02-12 |
Family
ID=54168789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510284553.9A Active CN104954446B (zh) | 2015-05-28 | 2015-05-28 | 消息推送方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104954446B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686024B (zh) * | 2015-11-05 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 获取离线消息的到达率的方法、装置及*** |
TWI599207B (zh) * | 2016-02-08 | 2017-09-11 | 物聯智慧科技(深圳)有限公司 | 推播訊息傳遞方法與訊息傳遞系統 |
CN107231284B (zh) * | 2016-03-23 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种消息的发送方法和终端设备 |
CN106921515A (zh) * | 2016-06-29 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 业务操作数据处理方法、装置、电子设备、服务器及*** |
CN106657357A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 发送离线消息的方法及装置 |
CN106790607B (zh) * | 2016-12-29 | 2020-11-03 | 北京奇虎科技有限公司 | 发送离线消息的方法及装置 |
CN108512741A (zh) * | 2018-02-06 | 2018-09-07 | 北京云中融信网络科技有限公司 | 即时通讯方法、装置及*** |
CN108900506A (zh) * | 2018-06-28 | 2018-11-27 | 江苏中威科技软件***有限公司 | 消息推送方法、推送服务器和传输控制协议服务器 |
CN110022352B (zh) * | 2019-02-28 | 2022-02-22 | 福建天泉教育科技有限公司 | 一种消息推送的应答方法及终端 |
SG10201913065QA (en) | 2019-12-23 | 2021-07-29 | Sensetime Int Pte Ltd | Data processing method and apparatus, and edge device |
CN113242172B (zh) * | 2021-04-26 | 2023-02-28 | 福建天泉教育科技有限公司 | 一种消息的应答方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166744A (zh) * | 2011-12-08 | 2013-06-19 | 北京信威通信技术股份有限公司 | 一种arq机制中动态发送ack位图的方法 |
CN103220206A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种消息发送方法、装置和一种消息接收方法、装置 |
CN103684707A (zh) * | 2013-12-20 | 2014-03-26 | 广州华多网络科技有限公司 | 服务端、用户端消息传输处理方法、消息传输方法及*** |
-
2015
- 2015-05-28 CN CN201510284553.9A patent/CN104954446B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166744A (zh) * | 2011-12-08 | 2013-06-19 | 北京信威通信技术股份有限公司 | 一种arq机制中动态发送ack位图的方法 |
CN103220206A (zh) * | 2012-01-19 | 2013-07-24 | 阿里巴巴集团控股有限公司 | 一种消息发送方法、装置和一种消息接收方法、装置 |
CN103684707A (zh) * | 2013-12-20 | 2014-03-26 | 广州华多网络科技有限公司 | 服务端、用户端消息传输处理方法、消息传输方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104954446A (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104954446B (zh) | 消息推送方法及*** | |
CN103096435B (zh) | 连接保持方法、装置以及移动终端 | |
CN101282314B (zh) | 即时通信中的群组通信方法、设备及*** | |
CN102638416B (zh) | 多客户端登录时查看im消息的方法、客户端及*** | |
CN108881354B (zh) | 一种推送信息存储方法、装置、服务器和计算机存储介质 | |
EP1117225A3 (en) | Data transmission to and from a mobile terminal in a network | |
CN102571618B (zh) | 一种即时通信的方法和装置 | |
CA2499524A1 (en) | Apparatus and method of wireless instant messaging | |
CN105991412B (zh) | 消息推送方法及装置 | |
CN104270302B (zh) | 在线订单的传送***及传送方法 | |
GB2589211A (en) | Methods and systems of using remote subscriber identification modules at device | |
CN104683216A (zh) | 客服信息的转发方法及装置、客服*** | |
CN103188130A (zh) | 社交网络用户信息关联方法及装置 | |
CN103532784A (zh) | 一种发送心跳消息的方法、***、终端及网络设备 | |
WO2016090995A1 (zh) | 页面与长连接服务器间的通信方法及客户端 | |
CN113391979A (zh) | 监控数据展示的处理方法、设备、***及存储介质 | |
CN108430038A (zh) | 基于蓝牙多端对多端通讯的方法及*** | |
CN104243610A (zh) | 一种分布式文件传输服务方法 | |
CN1487706B (zh) | 企业即时通信的方法、***和控制流程 | |
KR100702704B1 (ko) | 메신저를 이용한 알림 시스템 및 방법 | |
CN104378419A (zh) | 一种数据高速推送的方法及*** | |
CN101557354A (zh) | 一种在在线客服中发送图片的方法 | |
CN104811342A (zh) | 一种eoc局端批量管理带wifi的eoc终端的方法 | |
CN101945055A (zh) | 一种即时通信***和即时通信方法 | |
CN103533001A (zh) | 基于http多重代理的通信方法和***、中间代理服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |