CN103648085B - 一种克服网络抖动的移动终端消息传递方法 - Google Patents

一种克服网络抖动的移动终端消息传递方法 Download PDF

Info

Publication number
CN103648085B
CN103648085B CN201310674164.8A CN201310674164A CN103648085B CN 103648085 B CN103648085 B CN 103648085B CN 201310674164 A CN201310674164 A CN 201310674164A CN 103648085 B CN103648085 B CN 103648085B
Authority
CN
China
Prior art keywords
message
client
server
sent
send
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
Application number
CN201310674164.8A
Other languages
English (en)
Other versions
CN103648085A (zh
Inventor
沈剑
朱为
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN201310674164.8A priority Critical patent/CN103648085B/zh
Publication of CN103648085A publication Critical patent/CN103648085A/zh
Application granted granted Critical
Publication of CN103648085B publication Critical patent/CN103648085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种克服网络抖动的移动终端消息传递方法,包括如下步骤:a)消息发送客户端将要向消息接收客户端发送的消息发送给服务器;b)服务器向消息接收客户端转发所述消息;c)服务器判断在规定时间内是否收到来自消息接收客户端的第一确认消息,若收到则进入步骤d;若未收到则将所述消息标记为可能发送失败的消息,并进入步骤e;d)服务器向消息发送客户端回复用于发送成功的第二确认消息,方法结束;e)服务器存储所述消息,并向所述消息发送客户端回复所述第二确认消息;f)当消息接收客户端重新上线后,向服务器发起一个拉取消息的请求,来查看是否存在可能发送失败的消息;g)服务器取出可能发送失败的消息并向消息接收客户端发送。

Description

一种克服网络抖动的移动终端消息传递方法
技术领域
本发明涉及移动即时通信领域,特别是一种用于克服网络抖动的移动终端即时通讯的消息传递方法。
背景技术
即时通信(IM)是指能够即时发送和接收互联网消息等的业务。即时通信自1998年面世以来,特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。早在互联网的初期,即时通讯的功能便已经成形,但受到当时电脑设备和网络普及度的限制,无法供一般人方便使用。但随着电脑日渐大众化和互联网的普及,人们希望利用这一新兴的介质来进行更方便沟通交流的需求日渐强烈,即时通讯功能开始受到广泛的关注。随着智能手机的普及和移动互联网的飞速发展,即时通讯也进入了一个新的阶段。IM已经成为手机上普及最快的应用,调查数据显示,96%以上的手机上网用户都在使用各类移动IM服务。
现在的移动即时通信,一般是在客户端和服务器之间是建立HTTP短连接方式。在HTTP短连接方式下,传统的在手机浏览器上使用的IM软件(手机WebIM)的消息发送方法是,消息发送客户端将消息发送给服务器,服务器在消息接收客户端在线时,将消息中转给消息接收客户端,从而完成消息的发送。然而,由于与PC版IM可以使用的TCP长连接不同,移动IM通常使用的HTTP协议不能保持长连接,并且,由于网络状况不好,经常抖动,掉线率高,消息丢失率较高等原因,手机WebIM消息的可靠性较低。
现有的一种对于手机WebIM消息发送方法的优化方案是,上述传统的手机WebIM消息发送过程中加入ACK(确认字符)机制。即在消息发送客户端将消息发送给服务器然后服务器将消息中转给消息接收客户端之后,消息接收客户端向服务器发送一个ACK,然后服务器将ACK中转给消息发送客户端,从而完成消息的传递。在这种消息发送方案下,只有消息发送客户端收到了消息接收客户端返回的ACK后,才认为之前的消息发送成功了。若消息接收客户端出现网络故障,则在消息发送客户端会弹出类似于“由于网络原因,消息发送失败”的提示,给发送方一个心理预期。然而,即时消息接收客户端恢复了网络,也可能无法再收到由于网络原因而发送失败的消息了,造成了消息的丢失。并且,由于移动消息接收客户端的网络不稳定,手机WebIM接收消息的接收成功率不高,使得ACK经常发送失败,从而使得消息发送方频繁弹出类似于“由于网络原因,消息发送失败”的提示,造成用户体验很差。
因此,需要一种高效的手机WebIM消息可靠传递方法,来避免消息丢失,以及在消息发送方频繁弹出表示消息发送失败的提示。
发明内容
本发明的目的是提供一种克服网络抖动的移动终端消息传递方法,所述方法包括如下步骤:a)消息发送客户端将要向消息接收客户端发送的消息发送给服务器;b)所述服务器向所述消息接收客户端转发所述消息;c)所述服务器判断在规定时间内是否收到来自所述消息接收客户端的第一确认消息,若收到则进入步骤d;若未收到则判定所述消息接收客户端已掉线,并将所述消息标记为可能发送失败的消息,并进入步骤e;d)所述服务器向所述消息发送客户端回复用于告知其所述消息发送成功的第二确认消息,所述方法结束;e)所述服务器存储所述消息,并向所述消息发送客户端回复所述第二确认消息;f)当所述消息接收客户端重新上线后,向所述服务器发起一个拉取消息的请求,来查看在其掉线期间是否存在所述可能发送失败的消息;g)所述服务器取出所述可能发送失败的消息,并将其向所述消息接收客户端发送。
优选地,在所述步骤g之后,所述消息接收客户端对来自所述服务器的所述可能发送失败的消息判断是否为重复发送的消息,若是则不将所述可能发送失败的消息向用户展示,若不是则将所述可能发送失败的消息向用户展示。
优选地,所述判断重复发送的消息是通过对比消息ID进行的。
优选地,步骤d或步骤e中的所述服务器向所述消息发送客户端回复所述另一确认消息的步骤在步骤a之后的任何时间点执行。
优选地,所述步骤e中服务器将所述消息存储于内存中。
优选地,以消息队列的方式对所述消息进行存储。
优选地,所述服务器具备两份以上所述内存用于备份存储。
优选地,所述步骤c中的规定时间为30秒。
优选地,所述消息接收客户端为运行在客户端浏览器上的即时通讯软件。
优选地,所述第一确认消息和第二确认消息是传输类控制字符。
利用本发明的高效的手机WebIM消息可靠传递方法,能够在http短连接方式下,避免由于网络故障等原因而引起的消息丢失,提高消息传递的可靠性。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
图1示意性示出了利用本发明的一种克服网络抖动的移动终端消息传递方法的系统框图。
图2示意性示出了本发明的一种克服网络抖动的移动终端消息传递方法的流程图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
在本实施例中,初始状态的消息发送客户端与消息接收客户端都在线。本发明中的客户端优选是在移动终端浏览器上使用的即时通讯软件(也称为手机Web IM)。本发明中的服务器是指即时通讯(IM)服务器,通常是使用http协议的web-server。
图1示意性示出了利用本发明的一种克服网络抖动的移动终端消息传递方法的系统框图。如图1所示:
利用本发明的一种高效的手机WebIM消息可靠传递方法的系统100包括消息发送客户端110、服务器120、以及消息接收客户端130。消息发送客户端110和消息接收客户端130可经过任意类型的网络与服务器120之间进行双向通信。所述网络例如包括诸如内联网之类的局域网(“LAN”)和诸如互联网之类的广域网(“WAN”)。网络可被配置为支持利用多种协议设置格式的信息的传输。另外,网络可以是公共网络、专用网络或其组合。网络还可以利用任何一种或多种类型的物理介质来实现,其中包括与多个服务提供商相关联的有线通信路径和无线通信路径。无线通信方式例如WiFi或WLAN、GPRS、蜂窝网络,例如GSM网络、3G网络、LTE网络或CDMA网络等等。
消息发送客户端110可以实现为任意类型的终端,包括但不限于PC客户端、手机客户端(app软件)或基于PC或手机浏览器运行的客户端,而消息接收客户端130优选地实现为运行在客户端浏览器上的即时通讯软件。客户端浏览器运行在具有移动和计算功能的计算机硬件终端上,所述计算机硬件终端可以是台式计算机、膝上型计算机、智能电话、个人数字助理(PDA)、平板电脑、游戏机、多功能移动终端或者包括计算功能和数据通信能力的任何其他设备。
图2示意性示出了本发明的一种克服网络抖动的移动终端消息传递方法的流程图。如图2所示:
步骤210,消息发送客户端110向消息接收客户端130发送消息,该消息首先被发送给服务器120。
步骤220,服务器120在接收到来自消息发送客户端110发送的该消息后,向消息接收客户端130转发该消息。
步骤230,服务器120判断在规定时间(例如30秒)内是否收到来自消息接收客户端130的确认消息(以下,称其为第一确认消息,简称第一ACK),该确认消息标明了消息接收客户端130已经收到了由服务器120转发的来自消息发送客户端110的该消息。若服务器120收到该第一ACK,则进入步骤240;若未收到,则判定消息接收客户端130已掉线,并将该消息设为可能发送失败的消息,进入步骤250。其中,未收到第一ACK的原因可能是网络抖动或消息接收客户端130掉线等。
其中,确认消息ACK(Acknowledgement),即确认字符,是在数据通信中,接收方发给发送方的一种传输类控制字符,用于表示发来的数据已确认接受无误。
步骤240,服务器120向消息发送客户端110回复确认消息(以下,称其为第二确认消息,简称第二ACK),来告知消息发送客户端110消息发送成功,消息传送的方法结束。
步骤250,服务器120将可能发送失败的消息进行存储,例如存入消息存储设备(例如内存或磁盘等)中,并向消息发送客户端110回复第二ACK,来告知消息发送客户端110消息发送成功;
优选地,步骤240或步骤250中的服务器向消息发送客户端110回复第二ACK的步骤可以在步骤210之后的任何时间点执行,如上所述的在步骤240或步骤250中仅仅是示例性说明。即,在接收来自消息发送客户端110的消息之后的任何时间,服务器都可以向消息发送客户端110回复第二ACK。
步骤260,当消息接收客户端130重新上线后,会向服务器120发起一个拉取消息的请求,来查看在其掉线期间是否存在可能向其发送失败的消息。
步骤270,服务器120到消息存储设备中拉取可能向消息接收客户端130发送失败的消息,并向消息接收客户端130发送该消息。
优选地,在步骤270之后存在步骤280。消息接收客户端130对来自服务器120的消息进行消息去重操作,即判断是否有重复的消息已被发送。例如,去重操作可以通过将该消息的ID与消息接收客户端130中已经接收到的消息的ID进行对比,判断来自服务器120的消息是否为重复消息,是则不将该消息向用户展示;否则将该消息向用户展示。重复消息可能在如下场景中产生:若消息接收客户端130在掉线前(例如网络不稳定等原因)接收了来自服务器120的消息,而未来得及向服务器120回复第一ACK,则当消息接收客户端130再次上线时,由于服务器120只要没有收到第一ACK就会将消息再次向消息接收客户端130发送,所以产生了重复消息。上述的消息去重步骤避免了用户收到重复的消息,改进了用户体验。
优选地,消息存储设备为内存。优选地,在消息存储设备为内存时,以消息队列的方式对消息进行存储。优选地,服务器120具备两份以上的内存用于备份存储,在这些内存中,具有一份主内存,其他的内存同步备份主内存的数据。若主内存宕机,则在其他内存中选出一个作为主内存来继续工作,从而保证不会丢失消息。
利用本发明的高效的手机WebIM消息可靠传递方法,能够在http短连接方式下,避免由于网络故障等原因而引起的消息丢失,提高消息传递的可靠性。
结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。

Claims (9)

1.一种克服网络抖动的移动终端消息传递方法,所述方法包括如下步骤:
a)消息发送客户端将要向消息接收客户端发送的消息发送给服务器,其中所述服务器使用http协议的web-server与所述消息发送客户端及消息接收 客户端连接;
b)所述服务器向所述消息接收客户端转发所述消息;
c)所述服务器判断在规定时间内是否收到来自所述消息接收客户端的第一确认消息,若收到则进入步骤d;若未收到则判定所述消息接收客户端已掉线,并将所述消息标记为可能发送失败的消息,并进入步骤e;
d)所述服务器向所述消息发送客户端回复用于告知其所述消息发送成功的第二确认消息,所述方法结束;
e)所述服务器存储所述消息,并向所述消息发送客户端回复消息发送成功的所述第二确认消息;
f)当所述消息接收客户端重新上线后与服务器建立http连接,向所述服务器发起一个拉取消息的请求,来查看在其掉线期间是否存在所述可能发送失败的消息;
g)所述服务器取出所述可能发送失败的消息,并将其向所述消息接收客户端发送;
h)所述消息接收客户端对来自所述服务器的所述可能发送失败的消息判断是否为重复发送的消息,若是则不将所述可能发送失败的消息向用户展示,若不是则将所述可能发送失败的消息向用户展示。
2.根据权利要求1所述的方法,其特征在于,所述判断是否为重复发送的消息是通过对比消息ID进行的。
3.根据权利要求1所述的方法,其特征在于,步骤d或步骤e中的所述服务器向所述消息发送客户端回复所述第二确认消息的步骤在步骤a之后的任何时间点执行。
4.根据权利要求1所述的方法,其特征在于,所述步骤e中服务器将所述消息存储于内存中。
5.根据权利要求4所述的方法,其特征在于,以消息队列的方式对所述消息进行存储。
6.根据权利要求4所述的方法,其特征在于,所述服务器具备两份以上所述内存用于备份存储。
7.根据权利要求1所述的方法,其特征在于,所述步骤c中的规定时间为30秒。
8.根据权利要求1所述的方法,其特征在于,所述消息接收客户端为运行在客户端浏览器上的即时通讯软件。
9.根据权利要求1所述的方法,其特征在于,所述第一确认消息和第二确认消息是传输类控制字符。
CN201310674164.8A 2013-12-11 2013-12-11 一种克服网络抖动的移动终端消息传递方法 Active CN103648085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310674164.8A CN103648085B (zh) 2013-12-11 2013-12-11 一种克服网络抖动的移动终端消息传递方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310674164.8A CN103648085B (zh) 2013-12-11 2013-12-11 一种克服网络抖动的移动终端消息传递方法

Publications (2)

Publication Number Publication Date
CN103648085A CN103648085A (zh) 2014-03-19
CN103648085B true CN103648085B (zh) 2018-09-21

Family

ID=50253224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310674164.8A Active CN103648085B (zh) 2013-12-11 2013-12-11 一种克服网络抖动的移动终端消息传递方法

Country Status (1)

Country Link
CN (1) CN103648085B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105306717A (zh) * 2015-10-30 2016-02-03 南方科技大学 基于移动终端的医疗事件预警方法及装置
CN106921554B (zh) * 2015-12-24 2020-09-29 北京新媒传信科技有限公司 消息传输方法及装置
CN111431952B (zh) * 2019-01-09 2022-06-03 阿里巴巴集团控股有限公司 消息推送方法、装置及系统,计算机存储介质和电子设备
CN110533312A (zh) * 2019-08-22 2019-12-03 欧拉信息服务有限公司 一种网约车方法及系统
CN117234709A (zh) * 2023-08-31 2023-12-15 广州市玄武无线科技股份有限公司 一种基于消息中间件的去重方法、系统、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859380A (zh) * 2005-07-28 2006-11-08 华为技术有限公司 一种离线消息获取方法
CN101193070A (zh) * 2006-12-13 2008-06-04 腾讯科技(深圳)有限公司 即时通信系统、即时通信客户端及即时通信方法
CN103095550A (zh) * 2011-11-01 2013-05-08 华为技术有限公司 一种即时通信方法、系统及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9002949B2 (en) * 2004-12-01 2015-04-07 Google Inc. Automatically enabling the forwarding of instant messages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859380A (zh) * 2005-07-28 2006-11-08 华为技术有限公司 一种离线消息获取方法
CN101193070A (zh) * 2006-12-13 2008-06-04 腾讯科技(深圳)有限公司 即时通信系统、即时通信客户端及即时通信方法
CN103095550A (zh) * 2011-11-01 2013-05-08 华为技术有限公司 一种即时通信方法、系统及装置

Also Published As

Publication number Publication date
CN103648085A (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
US7814167B2 (en) System and method for obtaining remote instant messages
CN103648085B (zh) 一种克服网络抖动的移动终端消息传递方法
US9197587B2 (en) User initiated rule-based restrictions on messaging applications
US9166987B2 (en) Preventing identity fraud for instant messaging
US8886234B2 (en) Techniques for unified messaging
US20090049190A1 (en) Multiple points of presence in real time communications
US10574782B2 (en) Method and server for generating contact relationship data in network communication system
JP5135421B2 (ja) ページモードメッセージング
EP2745467A1 (en) Method for flow control and for reliable communication in a collaborative environment
US10812421B2 (en) Conveying instant messages via HTTP
WO2006101561A2 (en) Method for signing into a mobile device over a network
CN104348697A (zh) 视频通讯信息的处理方法、装置及系统
US20060168642A1 (en) Using presence to inform other clients about capability limitations
CN103297937A (zh) 一种实现信息通知的方法、系统和装置
US10075403B2 (en) Method and system for managing voice mails in a universal plug and play network environment
US20150055551A1 (en) Mobile wireless access point notification delivery for periodically disconnected mobile devices
CN105024907A (zh) 一种推送im信息的方法和系统、服务器以及平台
US7917590B2 (en) Deleting mechanism in SIP multimedia services
CN106453635B (zh) 消息推送方法及装置
JP6214538B2 (ja) バルク分類
US20140258476A1 (en) File transmission to communication-disabled terminal
WO2012102831A1 (en) Method to establish a message exchange between mobile devices over a data connection
TWM601426U (zh) 即時通訊服務系統
KR20080023869A (ko) 모바일 인스턴트 메시징 방법 및 그 시스템
WO2009100613A1 (en) Wireless communications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant