消息发送状态的处理方法及装置的制造方法

文档序号:9399179阅读:302来源:国知局
消息发送状态的处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及即时通讯术领域,特别涉及一种消息发送状态的处理方法及装置。
【背景技术】
[0002]随着网络技术的发展,各种即时通信(Instant Messaging,简称为IM)层出不穷,它改变着人们以电子邮件、电话等为主的传统通讯方式和交流方式,即时通讯工具的运用为沟通创造了一个良好的渠道,同时也更具有直观性和廉价性,因此被广泛的应用。
[0003]XMPP (Extensible Messaging and Presence Protocol,可扩展消息出席协议)是即时通信常用的协议之一,基于XML(Extensible Markup Language,可扩展标记语言)的协议。可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一方进行通话,这使得开发者更容易建立客户应用程序或给一个配好的系统添加功能。使用即时通讯应用传递消息,可以大大提高用户活跃度,只要消息传递双方均在网络上可以互通即可。客户端向服务器发送消息的技术已经非常成熟,所以消息应用需要面对的核心问题是从服务器到客户端下行消息的问题,即如何实现消息推送。
[0004]例如,现有技术中,XMPP中定义了三个角色,客户端,服务器,网关。基于XMPP消息服务器应用,建立点对点的链接,但还是需要连接到服务器来获取一些连接信息和通信信息。服务器接收到发送任务命令,将数据按规范传输至网关,网关发送信息到指定的用户端。
[0005]当用户发送消息时,消息会被发送至服务器端,同时该条消息状态显示在用户的会话窗口,假定一个聊天情景,如果用户A与他的在线好友用户B建立会话,他将通过服务器找到用户B的信息,直接向用户B发送消息指令,用户B的頂客户端收到消息指令后建立与用户A的会话窗口,用户B收到消息对用户A回复消息指令。此时该条消息向XMPP服务器发送,同时消息的当前状态直接在视图会话窗口内部显示(如图1所示)。此消息触发事件可能的状态为:已发送返回(成功)、已发送未返回(超时)和发送失败等状态其中之一。但是,由于基于XMPP协议的现有技术在移动端(即客户端)的开发中未对处理消息发送状态有做论述,消息状态的更新仅仅在视图会话窗口内部进行处理,当消息发送失败或服务器未及时反馈,当前会话窗口的视图界面将处于长期等待状态,然而我们必须及时了解消息发送状态,以便于及时控制用户的下一步行为;且在移动端的使用中,视图会话窗口的切换是很频繁的,独立单一的视图应用在实际使用过程中并不常见,在实际应用中发送消息会因设备、网络等其他原因导致未成功发送,即有可能为超时或失败等,根据上述用户A和用户B之间进行的即时通讯技术方案,用户A若执行了切换视图操作使其不在当前聊天页面,当再次返回视图时,消息状态在视图界面显示中可能还是处于长久的等待状态,或者可能产生状态丢失,从而显示不准确,使用户产生疑惑,也不便于执行重发、删除等操作。

【发明内容】

[0006]本发明实施例提供了一种消息发送状态的处理方法,以及时、准确地更新显示即时通讯中消息的发送状态,来提高时效性沟通的准确性和及时反馈性,增强用户体验。该方法包括:在移动终端的用户使用即时通讯应用程序发送消息时,为所述移动终端的用户发送的每一条消息设置一个消息编号,保存每一条消息的消息编号,该消息编号在消息发送系统中是全局唯一的;根据消息编号实时更新并保存每一条消息当前的发送状态;实时将每一条消息当前的发送状态发送给即时通讯应用程序的会话窗口进行显示。
[0007]在一个实施例中,保存每一条消息的消息编号,包括:保存每一条消息的消息编号的同时,保存每一条消息的发送时刻,根据消息编号实时更新并保存每一条消息当前的发送状态,包括:保存每一条消息的消息编号时,保存每一条消息当前的发送状态为正在发送;接收到XMPP服务器对消息反馈的成功消息,找到消息编号与所述成功消息携带的消息编号一致的消息,将该消息当前的发送状态更新并保存为发送成功;接收到XMPP服务器对消息反馈的失败消息,找到消息编号与所述失败消息携带的消息编号一致的消息,将该消息当前的发送状态更新并保存为发送失败;找到当前时刻距离发送时刻的时长大于预设时长的消息编号,且当前未收到XMPP服务器对该消息编号对应消息的反馈消息,将该消息编号对应消息当前的发送状态更新并保存为发送超时。
[0008]在一个实施例中,为所述移动终端的用户发送的每一条消息设置一个消息编号,包括:根据可扩展消息出席协议XMPP为所述移动终端的用户发送的每一条消息设置一个消息编号。
[0009]在一个实施例中,保存每一条消息的消息编号,包括:以数组的形式保存每一条消息的消息编号。
[0010]在一个实施例中,所述每一条消息的发送时刻的字段和所述预设时长的字段存入在一个字典中,所述字典在所述数组中。
[0011]本发明实施例还提供了一种消息发送状态的处理装置,以及时、准确地更新显示即时通讯中消息的发送状态,来提高时效性沟通的准确性和及时反馈性,增强用户体验。该装置包括:设置保存模块,用于在移动终端的用户使用即时通讯应用程序发送消息时,为所述移动终端的用户发送的每一条消息设置一个消息编号,保存每一条消息的消息编号,该消息编号在消息发送系统中是全局唯一的;状态更新模块,用于根据消息编号实时更新并保存每一条消息当前的发送状态;状态发送模块,用于实时将每一条消息当前的发送状态发送给即时通讯应用程序的会话窗口进行显示。
[0012]在一个实施例中,所述设置保存模块,具体用于保存每一条消息的消息编号的同时,保存每一条消息的发送时刻;所述状态更新模块,包括:第一状态更新单元,用于保存每一条消息的消息编号时,保存每一条消息当前的发送状态为正在发送;第二状态更新单元,用于接收到XMPP服务器对消息反馈的成功消息,找到消息编号与所述成功消息携带的消息编号一致的消息,将该消息当前的发送状态更新并保存为发送成功;第三状态更新单元,用于接收到XMPP服务器对消息反馈的失败消息,找到消息编号与所述失败消息携带的消息编号一致的消息,将该消息当前的发送状态更新并保存为发送失败;第四状态更新单元,用于找到当前时刻距离发送时刻的时长大于预设时长的消息编号,且当前未收到XMPP服务器对该消息编号对应消息的反馈消息,将该消息编号对应消息当前的发送状态更新并保存为发送超时。
[0013]在一个实施例中,所述设置保存模块,还用于根据可扩展消息出席协议XMPP为所述移动终端的用户发送的每一条消息设置一个消息编号。
[0014]在一个实施例中,所述设置保存模块,具体用于以数组的形式保存每一条消息的消息编号。
[0015]在一个实施例中,所述每一条消息的发送时刻的字段和所述预设时长的字段存入在一个字典中,所述字典在所述数组中。
[0016]在本发明实施例中,在移动终端的用户使用即时通讯应用程序发送消息时,通过为每一条消息设置一个全局唯一的消息编号,并在保存每一条消息的消息编号后,实时根据消息编号更新并保存每一条消息当前的发送状态,进而再将每一条消息当前的发送状态发送给即时通讯应用程序的会话窗口进行显示,与现有技术中消息状态的更新在视图会话窗口内部进行处理的方式相比,本申请可以保证消息的发送状态不丢失,在用户进行视图会话窗口的切换或再次返回时,只要会话窗口没有销毁,就可以确保及时、准确地更新显示即时通讯中消息的发送状态,来提高时效性沟通的准确性和及时反馈性,增强用户体验,便于用户及时进行“重发”、“删除”等操作。
【附图说明】
[0017]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
[0018]
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1