CN115118696A - 消息的保序方法、可读介质和电子设备 - Google Patents
消息的保序方法、可读介质和电子设备 Download PDFInfo
- Publication number
- CN115118696A CN115118696A CN202110251061.5A CN202110251061A CN115118696A CN 115118696 A CN115118696 A CN 115118696A CN 202110251061 A CN202110251061 A CN 202110251061A CN 115118696 A CN115118696 A CN 115118696A
- Authority
- CN
- China
- Prior art keywords
- message
- electronic device
- application
- sent
- electronic equipment
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000015654 memory Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 description 24
- 230000005540 biological transmission Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000010295 mobile communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 241000644027 Perideridia lemmonii Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
Images
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/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- 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/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- 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/21—Monitoring or handling of messages
- H04L51/226—Delivery according to priorities
-
- 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/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
-
- 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/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- 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/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- 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/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72469—User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
- H04M1/72472—User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons wherein the items are sorted according to specific criteria, e.g. frequency of use
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种消息的保序方法、可读介质和电子设备。该方法包括:第一电子设备生成向第二电子设备发送的第一消息,并开始向第二电子设备发送第一消息;第一电子设备向第二电子设备发送的第二消息,并在向第二电子设备发送第二消息前,确定出第一消息未完成发送;第一电子设备向第二电子设备发送包括第二消息的整合消息;第二电子设备接收到整合消息后,根据整合消息显示第一消息和第二消息。本申请通过将未完成发送的消息的相关信息和待发送的消息一起发送,在接收端向用户显示消息的顺序为先发送的消息在后发送的消息之前,用户所感受到的就是消息的接收顺序和消息的发送顺序保持一致,提升用户体验。
Description
技术领域
本申请涉及通信领域,特别涉及一种消息的保序方法、可读介质和电子设备。
背景技术
随着互联网技术的不断发展,即时通讯(Instant Messaging,IM)应用程序已经成为人们沟通的一种重要方式。即时通讯是一种可以让用户在网络上建立某种私人会话的实时通讯服务。且随着微信、QQ、钉钉等IM应用的广泛应用,用户可以在手机、平板电脑等终端设备上安装IM应用,并使用安装好的IM应用进行会话。
当用户在使用IM应用进行会话时,发送的消息内容可以是文本、图片、视频、文件等多种富媒体类型的消息。为了节省网络流量,以及保证数据传输的安全性,通常终端设备在发送消息前,会对数据量较大的消息内容例如文件、视频、音频等进行压缩、加密等处理,再将处理后的消息内容经由网络传送出去。这就会造成不同类型、不同大小的消息内容传送的时间的不同,从而导致在发送多条消息时,先发送的消息后收到,后发送的消息先收到的情况的发生。如此,使得消息的发送顺序和接收的顺序不一致,影响用户体验。
发明内容
本申请实施例提供了一种消息的保序方法、可读介质和电子设备。本申请的技术方案通过在发送当前消息之前,判断是否有完成发送的消息,在确定有未完成发送的消息的情况下,将该未完成发送的消息的相关信息和本条消息一起整合后发送。当接收端在接收到整合消息后,对整合消息进行解析,在解析出整合消息中携带有表征上一条消息未接收到的情况下,向用户显示接收的消息的顺序为上一条消息在本条消息之前。如此,使得在消息会话中,显示给用户的消息的接收顺序和消息的发送顺序保持一致,提升用户体验。
第一方面,本申请实施例提供了一种消息的保序方法,包括:第一电子设备的第一应用生成向第二电子设备发送的第一消息,并开始向第二电子设备发送第一消息;第一电子设备的第一应用生成向第二电子设备发送的第二消息,并在向第二电子设备发送第二消息前,确定出第一消息未完成发送;第一电子设备向第二电子设备发送包括第二消息的整合消息,其中,整合消息包括第二消息和表征第一消息未完成发送的第一标识;第二电子设备接收到整合消息后,根据整合消息显示第一消息和第二消息。
其中,第一应用可以为即时通讯应用,也可以为直播、视频会议、在线教育等等可以实现即时通讯功能的各种应用,本申请对此不作限定。
在一些实施例中,第二电子设备在接收到包括第二消息的整合消息之后,在第一应用的显示界面中显示第一消息的提示信息,并同时显示第二消息。其中,第一消息的提示信息在第一应用的显示界面中的位置处于第二消息的上方。
在一些实施例中,在第二电子设备确定接收到第一消息之后,在第二电子设备的第一应用的显示界面中停止显示第一消息的提示信息,将第一消息的提示信息替换成第一消息。其中,第一消息在第一应用的显示界面中的位置处于第二消息的上方。
在一些实施例中,在第二电子设备确定在接收到第一消息之前,接收到整合消息,第二电子设备在第一应用的显示界面中同时显示第一消息及第二消息。其中,第一消息在第一应用的显示界面中的位置处于第二消息的上方。
在上述第一方面的一种可能的实现中,上述方法还包括:第一标识包括第一消息的ID和类型信息中的至少一种。
其中,第一消息的ID可以是例如通过SHA256哈希算法哈希出来的32位的唯一字符串。第一消息的类型可以是图片、文本、文件、视频、音频等。
在上述第一方面的一种可能的实现中,上述第二电子设备接收到整合消息后,根据整合消息显示第一消息和第二消息包括:
第二电子设备接收到整合消息后,在第一应用的显示界面中显示第一消息的提示信息,同时显示第二消息。其中,第一消息的提示信息在第一应用的显示界面中的位置处于第二消息的上方。
在一些实施例中,第一消息的提示信息还可以被称为第一消息的预占位信息,第一消息的提示信息可以为视频的第一帧图片、图片的缩略图,表征消息正在下载的动画等等。
在上述第一方面的一种可能的实现中,上述方法还包括:
第二电子设备在确定接收到第一消息后,在第二电子设备的第一应用的显示界面中停止显示第一消息的提示信息,将第一消息的提示信息替换成第一消息。其中,第一消息在第一应用的显示界面中的位置处于第二消息的上方。
在上述第一方面的一种可能的实现中,上述方法还包括:第一消息的提示信息包括图片、文字、动画中的至少一种。
在上述第一方面的一种可能的实现中,上述第二电子设备接收到整合消息后,根据整合消息显示第一消息和第二消息包括:第二电子设备确定在接收到第一消息之前,接收到整合消息;第二电子设备在第一应用的显示界面中同时显示第一消息及第二消息。其中,第一消息在第一应用的显示界面中的位置处于第二消息的上方。
在上述第一方面的一种可能的实现中,上述方法还包括:第一应用包括即时通讯应用、直播应用、视频会议应用、在线教育应用中的至少一种。
在上述第一方面的一种可能的实现中,上述方法还包括:第一电子设备经由服务器向第二电子设备发送第一应用生成的消息。
第二方面,本申请实施例提供了一种消息的保序方法,包括:第一电子设备的第一应用生成向第二电子设备发送的第一消息,并开始向第二电子设备发送第一消息;
第一电子设备的第一应用生成向第二电子设备发送的第二消息,并在向第二电子设备发送第二消息前,确定出第一消息未完成发送;
第一电子设备向第二电子设备发送包括第二消息的整合消息,其中,整合消息包括第二消息和表征第一消息未完成发送的第一标识。
在一些实施例中,整合消息可以是通过畅连协议格式将第二消息和表征第一消息未完成发送的第一标识进行封装后得到的。畅连协议的具体格式可以参阅具体实施方式部分。
在上述第二方面的一种可能的实现中,上述方法还包括:第一标识包括第一消息的ID信息和类型信息中的至少一种。
在一些实施例中,第一标识还可以包括发送时间等等。
在上述第二方面的一种可能的实现中,上述方法还包括:第一应用包括即时通讯应用、直播应用、视频会议应用、在线教育应用中的至少一种。
在上述第二方面的一种可能的实现中,上述方法还包括:第一电子设备经由服务器向第二电子设备发送第一应用生成的消息。
第三方面,本申请实施例提供了一种消息的保序方法,包括:
第二电子设备从第一电子设备接收到包括第二消息的整合消息,其中,整合消息包括第二消息和表征第一消息未完成发送的第一标识,第一消息和第二消息由第一电子设备上的第一应用生成;
第二电子设备接收到整合消息后,根据整合消息显示第一消息和第二消息。
在上述第三方面的一种可能的实现中,上述方法还包括:第一标识包括第一消息的ID信息和类型信息中的至少一种。
在上述第三方面的一种可能的实现中,上述第二电子设备接收到整合消息后,根据整合消息显示第一消息和第二消息包括:
第二电子设备接收到整合消息后,在第一应用的显示界面中显示第一消息的提示信息,同时显示第二消息。其中,第一消息的提示信息在第一应用的显示界面中的位置处于第二消息的上方。
在上述第三方面的一种可能的实现中,上述方法还包括:第二电子设备在确定接收到第一消息后,在第二电子设备的第一应用的显示界面中停止显示第一消息的提示信息,将第一消息的提示信息替换成第一消息。其中,第一消息在第一应用的显示界面中的位置处于第二消息的上方。
在上述第三方面的一种可能的实现中,上述方法还包括:第一消息的提示信息包括图片、文字、动画中的至少一种。
在上述第三方面的一种可能的实现中,上述第二电子设备接收到整合消息后,根据整合消息显示第一消息和第二消息包括:
第二电子设备确定在接收到第一消息之前,接收到整合消息;第二电子设备在第一应用的显示界面中同时显示第一消息及第二消息。其中,第一消息在第一应用的显示界面中的位置处于第二消息的上方。
在上述第三方面的一种可能的实现中,上述方法还包括:第一应用包括即时通讯应用、直播应用、视频会议应用、在线教育应用中的至少一种。
在上述第三方面的一种可能的实现中,上述方法还包括:第二电子设备经由服务器从第一电子设备接收第一电子设备的第一应用生成的消息。
第四方面,本申请实施例提供了一种可读介质,可读介质上存储有指令,该指令在电子设备上执行时使电子设备执行上述第一方面以及第一方面的各种可能实现中的任意一种消息的保序方法。
第五方面,本申请实施例提供了一种电子设备,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及
处理器,当指令被一个或多个处理器执行时,处理器用于执行上述第一方面以及第一方面的各种可能实现中的任意一种消息的保序方法。
附图说明
图1根据本申请的一些实施例,示出了一种用户使用电子设备进行消息会话的场景图;
图2(a)根据本申请的一些实施例,示出了一种用户张三使用手机的IM APP向用户李四发送消息的界面图;
图2(b)示出了相关技术中用户李四使用手机的IM APP收到用户张三发来的消息的界面图;
图2(c)根据本申请的一些实施例,示出了一种用户李四使用手机的IM APP收到用户张三发来的消息的界面图;
图3根据本申请的一些实施例,示出了一种手机的硬件结构框图;
图4根据本申请的一些实施例,示出了相关技术方案中,用户使用手机的IM APP进行会话时消息处理的流程图;
图5(a)根据本申请的一些实施例,示出了用户汤姆和用户托尼的微信会话界面;
图5(b)根据本申请的一些实施例,示出了用户托尼和用户汤姆的微信会话界面;
图6根据本申请的一些实施例,示出了第一用户通过手机的IM APP向第二用户先发送一张图片再发送一条文本消息的情况下,手机采用本申请技术方案对消息的处理流程;
图7根据本申请的一些实施例,示出了本申请提供的消息的保序方法的流程框图;
图8(a)根据本申请的一些实施例,示出了第一用户所持的手机的桌面图:
图8(b)根据本申请的一些实施例,示出了第一用户所持的手机的IM APP的登陆界面;
图8(c)根据本申请的一些实施例,示出了第一用户登陆手机的IM APP后第一用户的联系人界面;
图8(d)根据本申请的一些实施例,示出了第一用户和第二用户通过IM APP会话的会话界面;
图8(e)根据本申请的一些实施例,示出了第二用户收到的第一用户发来的消息中图片正在下载的界面;
图8(f)根据本申请的一些实施例,示出了第二用户收到了第一用户发来的图片消息和文本消息的界面;
图9(a)根据本申请的一些实施例,示出了本申请提供的一种畅连协议的示意框图;
图9(b)根据本申请的一些实施例,示出了本申请提供的另一种畅连协议的示意框图;
图10根据本申请的一些实施例,示出了本申请提供的消息的保序方法的另一种流程框图。
具体实施方式
本申请的说明性实施例包括但不限于消息的保序方法、可读介质和电子设备。
为了解决在消息会话中,消息发送和接收的顺序不一致的问题,本申请实施例提供了一种消息的保序方法。具体地,假设用户通过第一电子设备向第二电子设备发送消息B,若第一电子设备在发送消息B之前确定上一条消息A(即当前发送的消息B的前一条消息)未完成发送,则将未完成发送的消息A的类型(如文字、图片、视频、文件等)以及消息的ID等信息,和待发送的消息B一起按照设定的协议格式进行封装,然后发送给第二电子设备。第二电子设备在接收到消息A之后,对消息A进行解析,若确定按照第一电子设备的发送顺序,消息B之前还有一条消息A未接收,则第二电子设备等到消息A接收完成后,再将消息A和消息B在消息会话中显示出来。或者,第二电子设备在消息会话中先显示一条表征消息A正在下载的内容,例如,先显示一条“消息A正在下载中”的动画,待消息A下载完成后,将消息A的内容显示出来,然后再显示消息B。如此,使得在消息会话中,显示给用户的消息的接收顺序和消息的发送顺序保持一致,提升用户体验。
下面将结合附图对本申请的实施例作进一步地详细介绍。
图1根据本申请的一些实施例,示出了一种电子设备10和电子设备20进行消息会话的场景。在图1所示的实施例中,包括电子设备10、电子设备20以及服务器30。
其中,电子设备10和电子设备20安装有IM应用程序(Application,APP)。若第一用户和第二用户需要分别通过电子设备10和电子设备20的IM APP进行消息会话,则第一用户和第二用户可以分别在成功登陆电子设备10和电子设备20的IM APP后,通过IM APP进行会话。例如,电子设备10通过自身的射频电路和天线,将第一用户通过电子设备的IM APP输入的消息通过无线通信链路发送给服务器30,服务器30将接收的消息进行存储,再通过无线通信链路发送给电子设备20。电子设备20可以通过执行本申请实施例提供的消息的保序方法,使得第二用户通过电子设备20的IM APP接收的消息的顺序,与第一用户通过电子设备10的IM APP发送给第二用户的消息的顺序保持一致。同样地,第一用户通过电子设备10的IM APP接收的消息的顺序,与第二用户通过电子设备20的IM APP发送给第一用户的消息的顺序保持一致。
例如,在图2(a)所示的消息会话的界面中,张三通过电子设备10的IM APP和李四进行会话。在电子设备10的IM APP的会话界面中,张三向李四先发送了一条视频消息201,然后发送了文本消息202,其中,文本消息202的内容为“你觉得这个视频怎么样”。由于视频的数据量较大,电子设备10通常在发送视频前会将视频进行压缩,并且为了保证视频传输的安全性,需要将视频进行加密处理,导致发送视频消息消耗的时间比发送文本消息消耗的时间要长,因此,在李四所持的电子设备20的IM APP上会先显示文本消息,再显示视频消息。例如,在图2(b)所示的实施例中,在李四所持的电子设备20的IM APP上先显示收到的文本消息202,即“你觉得这个视频怎么样”,过了3秒钟之后,再显示出收到的视频消息201。即:张三通过IM APP发送给李四的视频消息201与文本消息202的顺序,与李四通过IM APP接收到的视频消息201与文本消息202的顺序不一致,影响用户体验。
而采用本申请的技术方案之后,例如在图2(c)所示的消息会话的界面中,李四通过电子设备20的IM APP和张三进行会话。在电子设备20的IM APP的会话界面中,李四先收到了张三发来的一条视频消息201,然后收到了张三发来的“你觉得这个视频怎么样”的文本消息202。即李四所持的电子设备20的IM APP显示出来的来自张三发送的消息的顺序,和张三通过电子设备10的IM APP发送给李四的消息的顺序完全一致。如此,可以满足用户在阅读消息时,对于前后消息保持逻辑性的要求,提升用户体验。
可以理解的是,在本申请的实施例中,电子设备10和电子设备20可以是具有显示屏的各种电子设备,例如,包括但不限于,膝上型计算机、台式计算机、平板计算机、手机、服务器、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、其中嵌入或耦接有一个或多个处理器的电视机、或能够访问网络的其他电子设备。
此外,可以理解的是,上述IM APP仅仅是本申请方案的一种示例性应用,只要涉及消息会话的应用都可以用在本申请的技术方案中,例如,本申请的技术方案还可以应用于视频会议、直播、在线教育等等,在此不作限制。
在下文的描述中,为了简化说明,以电子设备10和电子设备20均为手机为例,介绍本申请的技术方案。
图3根据本申请的实施例,示出了一种手机10的硬件结构示意图。
手机10能够执行本申请实施例提供的消息的保序方法。在图3中,相似的部件具有同样的附图标记。如图3所示,手机10可以包括处理器110、电源模块140、存储器180、摄像头170、移动通信模块130、无线通信模块120、传感器模块190、音频模块150、接口模块160以及显示屏102等。
可以理解的是,本发明实施例示意的结构并不构成对手机10的具体限定。在本申请另一些实施例中,手机10可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如,可以包括中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、数字信号处理器(Digital Signal Processor,DSP)、微处理器(Micro-programmed Control Unit,MCU)、人工智能(Artificial Intelligence,AI)处理器或可编程逻辑器件(Field ProgrammableGate Array,FPGA)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,在本申请的一些实例中,处理器110可以用来判断手机10的IM APP在发送当前消息前,是否还有消息未完成发送,从而根据判断结果确定是否在待发送的当前消息中加入上一条消息的ID和类型等信息,从而根据设定的协议格式对消息进行封装。又例如,在本申请的一些实施例中,处理器110可以用来解析已接收的消息体是否携带有表征上一条消息未接收的内容,从而确定已接收的当前消息之前是否有未完成接收的消息。进而根据判断结果确定直接在手机10的IM APP中显示已接收的当前消息,还是在前述已接收的当前消息之前先显示上一条消息的预占位信息,或者待上一条消息完成接收后,将上一条消息和已接收的当前消息按顺序显示。
存储器180可用于存储数据、软件程序以及模块,可以是易失性存储器(VolatileMemory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(FlashMemory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,或者也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡。具体的,存储器180可以包括程序存储区1801和数据存储区1802。程序存储区1801内可存储程序代码,该程序代码用于使处理器110通过执行该程序代码,执行本申请实施例提供的消息的保序方法。在申请实施例中,数据存储区1802可以用于存储消息记录。该消息记录中可以包括消息的ID信息、消息的类型以及消息的内容等等。
电源模块140可以包括电源、电源管理部件等。电源可以为电池。电源管理部件用于管理电源的充电和电源向其他模块的供电。充电管理模块用于从充电器接收充电输入;电源管理模块用于连接电源,充电管理模块与处理器110。
移动通信模块130可以包括但不限于天线、功率放大器、滤波器、低噪声放大器(Low Noise Amplify,LNA)等。移动通信模块130可以提供应用在手机10上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块130可以由天线接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块130还可以对经调制解调处理器调制后的信号放大,经天线转为电磁波辐射出去。在一些实施例中,移动通信模块130的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块130至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块120可以包括天线,并经由天线实现对电磁波的收发。无线通信模块120可以提供应用在手机10上的包括无线局域网(Wireless Local Area Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络),蓝牙(Bluetooth,BT),全球导航卫星系统(Global Navigation Satellite System,GNSS),调频(Frequency Modulation,FM),近距离无线通信技术(Near Field Communication,NFC),红外技术(Infrared,IR)等无线通信的解决方案。手机10可以通过无线通信技术与网络以及其他设备进行通信。
在一些实施例中,手机10的移动通信模块130和无线通信模块120也可以位于同一模块中。
摄像头170用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP(Image Signal Processor,图像信号处理器)转换成数字图像信号。手机10可以通过ISP,摄像头170,视频编解码器,GPU(Graphic Processing Unit,图形处理器),显示屏102以及应用处理器等实现拍摄功能。例如,在本申请的一些实施例中,用户在使用手机10的IM APP进行会话时,可以选择将通过摄像头170拍摄的照片或视频发送给其IM APP的通讯录中的好友。
显示屏102包括显示面板。显示面板可以采用液晶显示屏(Liquid CrystalDisplay,LCD),有机发光二极管(Organic Light-emitting Diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-matrix Organic Lght-emitting Diode的,AMOLED),柔性发光二极管(Flex Light-emitting Diode,FLED),Mini LED,Micro LED,Micro OLED,量子点发光二极管(Quantum Dot Light-emitting Diodes,QLED)等。例如,显示屏102用于显示手机10的消息会话界面等)。
传感器模块190可以包括接近光传感器、压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
音频模块150可以将数字音频信息转换成模拟音频信号输出,或者将模拟音频输入转换为数字音频信号。音频模块150还可以用于对音频信号编码和解码。在一些实施例中,音频模块150可以设置于处理器110中,或将音频模块150的部分功能模块设置于处理器110中。在一些实施例中,音频模块150可以包括扬声器、听筒、麦克风以及耳机接口。例如,在本申请的一些实施例中,用户在使用手机10的IM APP进行会话时,接收到IM APP的通信录中的成员发来的语音消息,用户点击语音消息,可以通过扬声器听到语音消息的具体内容。
接口模块160包括外部存储器接口、通用串行总线(Universal Serial Bus,USB)接口及用户标识模块(Subscriber Identification Module,SIM)卡接口等。其中外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机10的存储能力。外部存储卡通过外部存储器接口与处理器110通信,实现数据存储功能。通用串行总线接口用于手机10和其他手机进行通信。用户标识模块卡接口用于与安装至手机10的SIM卡进行通信,例如读取SIM卡中存储的电话号码,或将电话号码写入SIM卡中。
在一些实施例中,手机10还包括按键、马达以及指示器等。其中,按键可以包括音量键、开/关机键等。马达用于使手机10产生振动效果,例如在用户的手机10收到新的IMAPP消息时产生振动,以提示用户查看消息。指示器可以包括激光指示器、射频指示器、LED指示器等。
以下将参考图1、图4和图5,介绍相关技术方案中IM APP的消息的处理方法。
如前所述,现有的IM APP存在消息发送和接收的顺序不一致的问题。图4示出了相关技术方案中,用户使用手机10的IM APP发送消息时消息处理的流程图。可以理解的是,IMAPP是被安装在手机10等电子设备上供用户使用的即时通信软件。现有的IM APP一般对于同一种类型的消息采用同一个线程按顺序发送,对于不同类型的消息采用多线程并发处理。例如,在图4所示的实施例中,当用户在手机10的IM APP中输入文本、图片、视频、文件等多种富媒体类型的消息时,对于消息内容的数据量较大的消息(例如图片、视频、文件),在压缩、加密、网络传输过程中的耗时较长,而对于消息内容的数据量较小的消息(例如文本消息),相应的压缩、加密、网络传输过程中的耗时较短。因而出现消息的发送和接收的顺序不一致的问题。例如,文本消息会先被收到,先被显示;而视频消息即使发送的时间早于文本消息,有可能接收和显示的时间反而晚于文本消息。尤其对于前后消息的内容有逻辑关系的情况,消息接收方看到的消息的顺序与消息发送方发送的消息顺序不一致,会影响用户体验。
例如,在图5(a)所示的微信会话的界面中,用户汤姆通过手机10的微信APP和用户托尼进行会话。在用户汤姆的微信APP的会话界面中,用户汤姆向用户托尼先发送了图片消息201,然后发送了文本消息202,文本消息202的内容为:“这图不错”。在图5(b)所示的微信会话的界面中,用户托尼通过手机20的微信APP和用户汤姆进行会话。在用户托尼的微信APP的会话界面中,用户托尼先收到了用户汤姆发来的文本消息202,然后收到了用户汤姆发来的图片消息201。即用户托尼所持的手机20的微信APP显示出来的来自用户汤姆发送的消息的顺序,和用户汤姆通过手机10的微信APP发送给用户托尼的消息的顺序不一致。
因此,为了解决现有的IM APP消息的接收顺序和发送顺序不一致的问题,本申请提供了一种消息的保序方法。
以下将参考图6至图10,以第一用户通过手机10的IM APP和使用手机20的IM APP的第二用户进行会话为例,介绍根据本申请的一些实施例提供的消息的保序方法。
在图6所示的实施例中,示出了第一用户在手机10的IM APP中先选择一张图片发送给第二用户,然后再在手机10的IM APP中输入一条文本消息发送给第二用户的情况下,本申请技术方案的处理流程。即在该实施例中,第一用户选择先发送图片,然后再发送文本消息。
如图6所示,对于第一用户选择的图片,手机10通过线程1处理时,假设图片的数据量较大,需要对图片进行压缩、加密然后经由网络传输给服务器30,服务器30将该图片存储后再经由网络传输给手机20,手机20将收到的图片信息解密后显示出来。
而对于第一用户发送的文本消息,手机10通过线程2处理时,在前述用户选择的图片的数据量较大的情况下,由于图片在压缩、加密以及网络传输过程中耗费的时间较长,导致第一用户在发送文本消息时,该图片还未完成发送。因此,手机10通过执行本申请的一些实施例提供的消息的保序方法,在发送第一用户输入的文本消息之前,先将上一条消息(即图片)的相关信息和文本消息一起发送给第二用户。
例如,在一些实施例中,手机10将第一用户发送的文本消息按照图9(a)所示的畅连协议格式进行封装,得到封装有该文本消息的畅连协议报文,然后将封装后的畅连协议报文经由网络传输给手机20。第二用户所持的手机20在接收到封装有文本消息的畅连协议报文之后,对该报文进行解析,在确定出该报文中封装的文本消息携带有上一条消息(即图片)的相关信息之后,手机20在IM APP的消息会话中显示图片的预占位信息,而后显示文本消息。其中,手机20在IM APP的消息会话中显示的图片的预占位信息是用于提示第二用户该图片正在下载的信息。例如,手机20在IM APP的消息会话中先显示图片的缩略图或者显示“正在下载”的动画,而后显示文本消息。或者,待图片接收完成后,先显示图片,再显示文本消息。
此外,可以理解的是,本申请实施例中涉及的畅连协议为适用于畅连应用程序(Application,APP)的协议规范。在本申请的其他实施例中,当用户在使用其他应用程序进行会话时,还可以使用其他适用于用户所使用的应用程序的协议规范,对用户发送的消息进行封装。
对于图6所示的实施例,图7示出了手机10、服务器30以及手机20之间完成信息传输的交互图。如图7所示,图6所示实施例采用本申请实施例提供的消息保序的方法进行消息处理的一种处理流程包括:
步骤702:手机10获取第一用户输入的消息。例如,在一些实施例中,手机10的处理器通过应用程序接口(Application Program Interface,API)从手机10的软件开发工具包(Software Development Kit,SDK)模块获取到第一用户在手机10的IM APP中输入的消息内容。
例如,在图8(a)所示的实施例中,第一用户点击手机10的桌面中的IM APP的图标11之后,手机10打开IM APP,显示出如图8(b)所示的IM APP的登陆界面。第一用户在IM APP登陆界面的账号输入框中输入账号,并且在密码输入框中输入密码之后,点击登陆按钮,则手机10显示出如图8(c)所示的第一用户的IM APP的联系人界面。第一用户从图8(c)所示的联系人第二用户、第三用户、第四用户以及第五用户中,点击第二用户的头像,选择第二用户进行会话,则手机10显示出如图8(d)所示的第一用户和第二用户会话的界面图。如图8(d)所示,第一用户先在IM APP的对话框中选择了一张花朵图片801发送给第二用户,然后又在IM APP的对话框中输入了“你看下这是什么花”的文本消息802。
步骤704:手机10在发送当前待发送消息时,判断是否有未完成发送的消息。
如果判断结果为是,则表明手机10在发送当前的待发送消息时,还有未完成发送的消息,进入步骤706a;如果判断结果为否,则表明手机10在发送当前的待发送消息时,没有未完成发送的消息,进入步骤706b。
例如,如上所述,第一用户先在IM APP的对话框中选择了一张花朵图片801发送给第二用户,然后又在IM APP的对话框中输入了“你看下这是什么花”的文本消息802。手机10在发送文本消息802时,会判断花朵图片801是否发送成功。
需要说明的是,用户在手机10的IM APP中输入的每一条消息,被手机10通过网络发送之后,手机10会生成IM APP的消息记录,并将消息记录存储在本地的IM APP的数据库中。其中,IM APP的数据库中存储有消息的内容、表征消息是否发送成功的状态标志位、消息的ID以及消息的类型等信息。其中,消息的ID可以是例如通过SHA256哈希算法哈希出来的32位的唯一字符串。消息的类型可以是图片、文本、文件、视频、音频等,例如,消息的类型字段TYPE=1对应文本类型,TYPE=2对应图片类型,TYPE=3对应视频类型,TYPE=4对应音频类型等等。
在一些实施例中,当手机10将一条消息发送给服务器30,并接收到服务器30的针对某条消息的确认字符(Acknowledgement,ACK)之后,将本地的IM APP的数据库中存储的对应该条消息的发送状态标志位例如Status置为1;反之,若未收到针对某条消息的确认字符,则将该条消息的发送状态标志位例如Status置为0。
在一些实施例中,当手机10在发送一条消息之前,还未将上一条消息从本地发送出去。例如,假设上一条消息的数据量较大,手机10在发送当前的消息之前,确定上一条消息还未完成压缩,即上一条消息还处于手机10的本地处理状态,则手机10将本地的IM APP的数据库中存储的对应上一条消息的发送状态标志位置为0。
例如,如图8(d)所示,手机10在发送“你看下这是什么花”的文本消息802之前,查看本地的IM APP的数据库中的消息记录,确定消息ID为:00000000.00000000.00000000.00000001消息类型字段TYPE=2的消息的发送状态标志位Status=0,则判断该类型为“图片”的消息803未完成发送;反之,若该消息的发送状态标志位Status=1,则判断该类型为“图片”的消息803已完成发送。
可以理解的是,本申请实施例中消息的ID、消息类型字段、以及消息的发送状态标志位的定义仅仅是一种示例性的说明。本申请对此不作限定。
步骤706a:手机10对待发送的消息和未完成发送的消息的相关信息按照设定协议格式进行封装。例如,将待发送的消息的内容与未完成发送的消息的ID信息及类型信息按照设定的协议格式进行封装。此外,也可以将待发送的消息的内容,以及未完成发送的消息的ID信息和类型信息中的至少一个按照设定协议进行封装。还可以将待发送的消息的内容与未完成发送的消息的其他信息(例如发送时间)进行封装,只要能表明存在上条消息未完成发送的标识都可以用在本申请的技术方案中,在此不作限制。
其中,设定的协议格式可以为如图9(a)所示的一种二进制协议,为了简化说明,以下将该二进制协议简称为畅连协议。可以理解的是,如图9(a)所示的畅连协议仅仅为适用于畅连APP的一种示例性的协议规范。在本申请的其他实施例中,还可以采用适用于其他IMAPP的协议规范对用户输入的消息进行封装,本申请对此不作限定。
在图9(a)所示的实施例中,畅连协议包括畅连协议头、畅连消息体以及畅连协议体的扩展部分。其中,畅连消息体包括前述待发送消息的消息内容,例如,在一些实施例中,畅连消息体中包括待发送的“你看下这是什么花”的文本消息802。畅连协议体的扩展部分可以包括前述未完成发送的消息的相关信息。例如,在一些实施例中,畅连协议体的扩展部分包括前述未完成发送的消息的ID信息及类型信息。例如,畅连协议体的扩展部分包括未完成发送的消息的ID为:00000000.00000000.00000000.00000001;类型为:TYPE=2。畅连协议头中包括表征该协议中是否携带有上一条未完成发送的消息的ID和类型信息。例如,在一些实施例中,畅连协议头中包括1比特的状态位Control,当Control=0时,表征该协议中未携带有上一条未完成发送的消息的ID和类型信息;当Control=1时,表征该协议中携带有上一条未完成发送的消息的ID和类型信息。
可以理解的是,畅连协议的协议头、消息体及扩展部分各个字段的长度,以及各个比特位、各个字节的含义可以由开发人员自定义,本申请对此不作限定。例如,在一些实施例中,畅连协议的协议头中还包括表征畅连协议的长度的2字节的Length字段,以及表征畅连协议的版本号的2字节的Version字段等等。又例如,在一些实施例中,畅连协议的消息体还包括待发送的消息的32位的ID,以及待发送的消息的2字节的类型信息等等。
此外,可以理解的是,为了使消息在网络中可靠地传输,手机10将待发送的消息和当前未完成发送的消息的ID信息及类型信息按照前述畅连协议格式进行封装后,得到畅连协议报文,再将畅连协议报文按照传输控制协议(Transmission Control Protocol,TCP)进行封装,得到如图9(a)所示的TCP报文。在一些实施例中,手机10还可以将畅连协议报文按照用户数据报协议(User Datagram Protocol,UDP)进行封装。本申请对具体采用哪一种传输协议传输消息不作限定。
此外,可以理解的是,为了避免消息在发送过程中被截获,通常会将消息加密。例如,在图9(a)所示的TCP报文中,手机10可以先采用高级加密标准(Advanced EncryptionStandard,AES)密钥对TCP头部以外的TCP的数据部分即畅连协议报文进行加密,之后再采用RSA(一种加密算法)公钥对AES密钥进行加密。
步骤706b:手机10封装待发送消息并进行发送。
可以理解的是,在一些实施例中,手机10在发送待发送消息前可以将待发送消息按照设定的协议格式进行封装,然后再将封装后的消息发送出去。例如,手机10通过蜂窝网、局域网等方式将封装后的消息发送给服务器30。其中,设定的协议格式可以为如图9(b)所示的一种畅连协议。图9(b)所示的畅连协议和图9(a)所示的畅连协议的区别在于:图9(b)所示的畅连协议只包括畅连协议头和畅连消息体,不包括扩展字段。其中,畅连协议头和畅连消息体的定义,与图9(a)所示的畅连协议中的畅连协议头和畅连消息体的定义类似,在此不再赘述。
步骤708:手机10发送包括待发送消息和未完成发送的消息的相关信息的封装消息。
例如,手机10通过蜂窝网、局域网等方式将封装后的消息发送给服务器30。具体地,例如,手机10将第一用户通过手机10的IM APP输入的待发送的“你看下这是什么花”的文本消息802的内容、消息ID为:00000000.00000000.00000000.00000002、消息类型TYPE=1,以及上一条消息801(即一朵花的图片)的消息ID:00000000.00000000.00000000.00000001、消息类型TYPE=2,按照图9(a)所示的畅连协议格式进行封装,并且将畅连协议头中的Control字段置为1。然后使用TCP协议对封装过的畅连协议报文进行传输。
步骤710:服务器30返回ACK确认消息给手机10。
其中,ACK确认消息用于通知手机10,服务器30已收到手机10发送的消息。例如,手机10收到服务器30发来的ACK确认消息之后,将本地的IM APP的数据库中存储的对应“你看下这是什么花”的文本消息802的发送状态标志位例如Status设置为1,以表示该消息已经被成功发送。
步骤712:服务器30转发封装后的消息给手机20。
在一些实施例中,服务器30将手机10发来的消息在本地进行存储之后,通过蜂窝网、局域网等方式,再将消息转发给手机20。例如,服务器30在收到手机10发来的“你看下这是什么花”的文本消息802的TCP报文之后,再将“你看下这是什么花”的文本消息802的TCP报文转发给手机20。在一些实施例中,服务器30还可以手机10发来的报文进行解析,并将该报文的数据部分的内容存储到本地数据库中,以供开发人员或用户对服务器存储的数据进行分析。
步骤714:手机20收到封装后的消息后返回ACK确认消息给服务器30。以通知服务器30手机20已收到服务器30发送的消息。
步骤716:手机20解析收到的封装后的消息,判断该消息是否携带有其他未接收的消息的相关信息。
如果判断结果为是,则表明该消息携带有其他未接收的消息的相关信息,进入步骤718a;如果判断结果为否,则表明该消息未携带有其他未接收的消息的相关信息,进入步骤718b。
例如,在一些实施例中,手机20对收到的TCP报文进行解析,确定TCP报文的数据部分中的Control字段的值为1,即畅连协议的协议头中表征该协议中是否携带有上一条未完成发送的消息的ID和类型信息的状态位的值为1,则确定收到的TCP报文的数据部分中携带有上一条未接收到的消息的ID和类型信息,从而确定在其收到的本条消息之前还有上一条未接收到的消息。反之,若Control字段的值为0,即畅连协议的协议头中表征该协议中是否携带有上一条未完成发送的消息的ID和类型信息的状态位的值为0,则确定在其收到的本条消息之前的所有消息均已被接收。
例如,手机20对收到的TCP报文进行解析,确定消息内容为“你看下这是什么花”、消息ID为:00000000.00000000.00000000.00000002、消息类型TYPE=1的消息802对应的畅连协议报文中的Control字段的值为1,则确定该条消息的畅连协议报文扩展部分的值不为0。再去解析该条消息的畅连协议报文的扩展部分,确定扩展部分携带的消息ID为:00000000.00000000.00000000.00000001、消息类型TYPE=2,从而确定消息ID为:00000000.00000000.00000000.00000001的一张图片801还未被接收到。
可以理解的是,在一些实施例中,由于手机10在发送消息之前对TCP报文中除了TCP头部以外的TCP的数据部分(即畅连协议报文)进行过加密处理,因此,手机20在收到服务器30转发的TCP报文之后,需要对TCP报文进行解密处理,再对解密后的TCP报文进行解析。
步骤718a:手机20按顺序显示该未接收的消息对应的预占位信息和已接收到的当前消息。
其中,预占位信息是手机20用来针对某条未接收到的消息,在其IM APP的会话界面中先占个位置。即:即使手机20未接收到一条消息,可以在IM APP的会话界面中先将对应该消息的预占位信息在该消息的显示位置处显示出来。
在一些实施例中,预占位信息可以是例如图8(e)所示的半圆形的表示图片消息801正在下载的用户界面(User Interface,UI)动画803。
在一些实施例中,预占位信息还可以是图片的缩略图、视频的第一帧画面等。在一些实施例中,预占位信息还可以是图片的缩略图与表征消息正在下载的UI动画的结合、视频的第一帧画面与表征消息正在下载的UI动画的结合等等。
需要说明的是,手机20在收到一条消息之后,先将收到的消息存储到本地的IMAPP数据库中。手机20在IM APP的会话界面中显示的消息顺序与接收的消息被写入本地IMAPP数据库的顺序保持一致,即先写入数据库的消息先被显示,后写入数据库的消息后被显示。因此,当手机20在收到一条消息之后,若确定上一条消息(例如图片、视频)未接收到,可以先不写入本条消息,在IM APP的消息会话中先显示上一条消息的预占位信息,然后再写入本条消息内容,则手机20的IM APP消息会话界面先显示出上一条消息的预占位信息,再显示本条消息的内容。
例如,在图8(e)所示的实施例中,手机20在确定接收到的“你看下这是什么花”的文本消息802对应的TCP报文中,TCP的数据部分(即畅连协议报文)中的扩展部分携带有消息ID为:00000000.00000000.00000000.00000001、消息类型TYPE=2。即确定上一条图片消息801未接收到,则手机20等到该图片的缩略图下载完成后,先在第二用户和第一用户的会话界面中显示前述图片的缩略图,并在该缩略图的中心显示一个如图8(e)所示的半圆形的表征图片正在下载的UI动画,再在该图片的缩略图下显示已接收到的“你看下这是什么花”的文本消息802。如此,就使得第二用户在手机20上登陆的IM APP的会话界面中看到的来自第一用户的消息的顺序,和如图8(d)所示的第一用户在手机10的IM APP的对话框中发送的消息的顺序一致。提升用户关于IM APP的使用体验。
步骤718b:手机20直接显示收到的消息。
例如,在一些实施例中,手机20在确定接收到的“你看下这是什么花”的文本消息802对应的TCP报文中,确定TCP报文的数据部分中的Control字段的值为0,即畅连协议的协议头中表征该协议中是否携带有上一条未完成发送的消息的ID和类型信息的状态位的值为0,则手机20直接在IM APP上显示“你看下这是什么花”的文本消息802。
步骤720:手机20在确定上一条未接收的消息已接收完成的情况下,显示该消息的消息内容。例如,在图8(f)所示的实施例中,手机20将“你看下这是什么花”的文本消息802的上一条花朵图片消息801接收完成后,将花朵图片完整显示出来。
以下将结合参考图8至图10,对第一用户在手机10的IM APP中先选择一张图片发送给第二用户,然后再在手机10的IM APP中输入一条文本消息发送给第二用户的情况下,手机10和手机20采用本申请实施例提供的消息保序的方法进行消息处理的另一种处理流程进行详细介绍。
其中,图10所示的实施例提供的消息的保序的方法的处理流程与图7所示的实施例提供的消息的保序的方法的处理流程类似,区别仅在于:
在图7所示的流程中,手机20在确定在接收到的本条消息之前有上一条消息未接收的情况下,在IM APP的会话界面中先将上一条消息用预占位信息的形式显示出来,而后显示已接收到的本条消息的内容,待上一条消息接收之后,再将该消息的完整内容显示出来。而在图10所示的流程中,手机20在确定在接收到的本条消息之前有上一条消息未接收的情况下,则先不显示本条消息,待上一条消息接收完毕之后,再将上一条消息和本条消息按顺序显示出来。例如,在一些实施例中,手机20在接收到本条消息之后,等一段时间,待上一条消息也完成接收之后,先在在IM APP的会话界面中显示上一条消息,然后再显示本条消息。又例如,在一些实施例中,手机20在接收到本条消息之后,等一段时间,待上一条消息也完成接收之后,再将上一条消息和本条消息同时显示出来。其中,上一条消息在IM APP的会话界面中的位置位于本条消息的上方。
需要说明的是,由于图10所示的消息保序的方法的处理流程与图7所示的流程类似,为了简化说明,对于图10中与图7中相同的步骤不再赘述,以下仅对图10中相异于图7中的步骤进行详细介绍。
具体地,如图10所示,当手机20对接收到的封装后的消息进行解析,确定出被封装的消息携带有其他未接收的消息的相关信息之后,进入步骤1018a;否则,当手机20对接收到的封装后的消息进行解析,确定出被封装的消息未携带其他未接收的消息的相关信息之后,进入步骤1018b。
例如,在一些实施例中,手机20通过解析收到的TCP报文的数据部分,确定出TCP报文的数据部分中的Control字段的值为1,则确定在手机20接收到的本条消息之前还有上一条未接收到的消息;反之,若确定TCP报文的数据部分中的Control字段的值为0,则确定手机20没有未接收到的消息。具体判断方法可以参阅上述关于图7中关于步骤716的文字描述,在此不再赘述。
步骤1018a:手机20在该未接收的消息被接收完之后,将该消息和本条消息的消息内容按顺序显示出来。
在一些实施例中,手机20在收到一条消息之后,先将收到的消息存储到本地的IMAPP数据库中。手机20在IM APP的会话界面中显示的消息顺序与接收的消息被写入本地IMAPP数据库的顺序保持一致,即先写入数据库的消息先被显示,后写入数据库的消息后被显示。因此,当手机20在收到一条消息之后,若确定上一条消息(例如图片、视频)未接收到,可以先不写入本条消息,待上一条消息接收完之后,再将前述上一条消息和本条消息依次写入本地IM APP数据库。然后再在IM APP消息会话界面中依次先显示出上一条消息的内容,再显示本条消息的内容。例如,在图8(f)所示的实施例中,手机20依次在IM APP的会话界面中显示出一条花朵图片的消息801后,再接着显示一条“你看下这是什么花”的文本消息802。使得第二用户在手机20上登陆的IM APP的会话界面中看到的来自第一用户的消息的顺序,和如图8(d)所示的第一用户在手机10的IM APP的对话框中发送的消息的顺序一致。提升用户关于IM APP的使用体验。
步骤1018b:手机20直接显示收到的消息。
例如,在一些实施例中,手机20在确定接收到的“你看下这是什么花”的文本消息802对应的TCP报文中,确定TCP报文的数据部分中的Control字段的值为0,即畅连协议的协议头中表征该协议中是否携带有上一条未完成发送的消息的ID和类型信息的状态位的值为0,则手机20直接在IM APP上显示“你看下这是什么花”的文本消息802。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (22)
1.一种消息的保序方法,其特征在于,包括:
第一电子设备的第一应用生成向第二电子设备发送的第一消息,并开始向所述第二电子设备发送所述第一消息;
所述第一电子设备的第一应用生成向所述第二电子设备发送的第二消息,并在向所述第二电子设备发送所述第二消息前,确定出所述第一消息未完成发送;
所述第一电子设备向所述第二电子设备发送包括所述第二消息的整合消息,其中,所述整合消息包括所述第二消息和表征所述第一消息未完成发送的第一标识;
所述第二电子设备接收到所述整合消息后,根据所述整合消息显示所述第一消息和所述第二消息。
2.根据权利要求1所述的方法,其特征在于,所述第一标识包括所述第一消息的ID和类型信息中的至少一种。
3.根据权利要求1所述的方法,其特征在于,所述第二电子设备接收到所述整合消息后,根据所述整合消息显示所述第一消息和所述第二消息包括:
所述第二电子设备接收到所述整合消息后,在所述第一应用的显示界面中显示所述第一消息的提示信息,同时显示所述第二消息。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述第二电子设备在确定接收到所述第一消息后,在所述第二电子设备的所述第一应用的显示界面中停止显示所述第一消息的提示信息,将所述第一消息的提示信息替换成所述第一消息。
5.根据权利要求3或4所述的方法,其特征在于,所述第一消息的提示信息包括图片、文字、动画中的至少一种。
6.根据权利要求1所述的方法,其特征在于,所述第二电子设备接收到所述整合消息后,根据所述整合消息显示所述第一消息和所述第二消息包括:
所述第二电子设备确定在接收到所述第一消息之前,接收到所述整合消息;所述第二电子设备在所述第一应用的显示界面中同时显示所述第一消息及所述第二消息。
7.根据权利要求1所述的方法,其特征在于,所述第一应用包括即时通讯应用、直播应用、视频会议应用、在线教育应用中的至少一种。
8.根据权利要求1所述的方法,其特征在于,所述第一电子设备经由服务器向所述第二电子设备发送所述第一应用生成的消息。
9.一种消息的保序方法,其特征在于,包括:
第一电子设备的第一应用生成向第二电子设备发送的第一消息,并开始向所述第二电子设备发送所述第一消息;
所述第一电子设备的第一应用生成向所述第二电子设备发送的第二消息,并在向所述第二电子设备发送所述第二消息前,确定出所述第一消息未完成发送;
所述第一电子设备向所述第二电子设备发送包括所述第二消息的整合消息,其中,所述整合消息包括所述第二消息和表征所述第一消息未完成发送的第一标识。
10.根据权利要求9所述的方法,其特征在于,所述第一标识包括所述第一消息的ID信息和类型信息中的至少一种。
11.根据权利要求9所述的方法,其特征在于,所述第一应用包括即时通讯应用、直播应用、视频会议应用、在线教育应用中的至少一种。
12.根据权利要求9所述的方法,其特征在于,所述第一电子设备经由服务器向所述第二电子设备发送所述第一应用生成的消息。
13.一种消息的保序方法,其特征在于,包括:
第二电子设备从第一电子设备接收到第二消息的整合消息,其中,所述整合消息包括所述第二消息和表征第一消息未完成发送的第一标识,所述第一消息和所述第二消息由所述第一电子设备上的第一应用生成;
所述第二电子设备接收到所述整合消息后,根据所述整合消息显示所述第一消息和所述第二消息。
14.根据权利要求13所述的方法,其特征在于,所述第一标识包括所述第一消息的ID信息和类型信息中的至少一种。
15.根据权利要求13所述的方法,其特征在于,所述第二电子设备接收到所述整合消息后,根据所述整合消息显示所述第一消息和所述第二消息包括:
所述第二电子设备接收到所述整合消息后,在所述第一应用的显示界面中显示所述第一消息的提示信息,同时显示所述第二消息。
16.根据权利要求15所述的方法,其特征在于,还包括:
所述第二电子设备在确定接收到所述第一消息后,在所述第二电子设备的所述第一应用的显示界面中停止显示所述第一消息的提示信息,将所述第一消息的提示信息替换成所述第一消息。
17.根据权利要求15或16所述的方法,其特征在于,所述第一消息的提示信息包括图片、文字、动画中的至少一种。
18.根据权利要求13所述的方法,其特征在于,所述第二电子设备接收到所述整合消息后,根据所述整合消息显示所述第一消息和所述第二消息包括:
所述第二电子设备确定在接收到所述第一消息之前,接收到所述整合消息;
所述第二电子设备在所述第一应用的显示界面中同时显示所述第一消息及所述第二消息。
19.根据权利要求13所述的方法,其特征在于,所述第一应用包括即时通讯应用、直播应用、视频会议应用、在线教育应用中的至少一种。
20.根据权利要求13所述的方法,其特征在于,所述第二电子设备经由服务器从所述第一电子设备接收所述第一电子设备的第一应用生成的消息。
21.一种可读介质,其特征在于,所述可读介质上存储有指令,该指令在电子设备上执行时使电子设备执行权利要求1-20中任一项所述的消息的保序方法。
22.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及
处理器,当所述指令被一个或多个处理器执行时,所述处理器用于执行权利要求1-20中任一项所述的消息的保序方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251061.5A CN115118696B (zh) | 2021-03-08 | 2021-03-08 | 消息的保序方法、可读介质和电子设备 |
CN202410517563.1A CN118214736A (zh) | 2021-03-08 | 2021-03-08 | 消息的保序方法、可读介质和电子设备 |
US18/549,230 US20240154922A1 (en) | 2021-03-08 | 2022-03-08 | Message Order-Preserving Method, Readable Medium, and Electronic Device |
EP22766304.4A EP4297365A4 (en) | 2021-03-08 | 2022-03-08 | METHOD FOR PRESERVING THE ORDER OF MESSAGES, READABLE MEDIUM AND ELECTRONIC DEVICE |
PCT/CN2022/079757 WO2022188781A1 (zh) | 2021-03-08 | 2022-03-08 | 消息的保序方法、可读介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251061.5A CN115118696B (zh) | 2021-03-08 | 2021-03-08 | 消息的保序方法、可读介质和电子设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410517563.1A Division CN118214736A (zh) | 2021-03-08 | 2021-03-08 | 消息的保序方法、可读介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118696A true CN115118696A (zh) | 2022-09-27 |
CN115118696B CN115118696B (zh) | 2024-05-03 |
Family
ID=83227438
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410517563.1A Pending CN118214736A (zh) | 2021-03-08 | 2021-03-08 | 消息的保序方法、可读介质和电子设备 |
CN202110251061.5A Active CN115118696B (zh) | 2021-03-08 | 2021-03-08 | 消息的保序方法、可读介质和电子设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410517563.1A Pending CN118214736A (zh) | 2021-03-08 | 2021-03-08 | 消息的保序方法、可读介质和电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240154922A1 (zh) |
EP (1) | EP4297365A4 (zh) |
CN (2) | CN118214736A (zh) |
WO (1) | WO2022188781A1 (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577967B1 (en) * | 2005-06-30 | 2013-11-05 | Google Inc. | Method and system for managing real-time communications in an email inbox |
US20140085334A1 (en) * | 2012-09-26 | 2014-03-27 | Apple Inc. | Transparent Texting |
US20150350125A1 (en) * | 2014-05-30 | 2015-12-03 | Cisco Technology, Inc. | Photo Avatars |
US20170054663A1 (en) * | 2015-08-18 | 2017-02-23 | Blend Systems, Inc. | Systems and methods for sharing videos and images in a texting environment |
CN107508749A (zh) * | 2017-09-18 | 2017-12-22 | 维沃移动通信有限公司 | 一种消息发送方法及移动终端 |
CN111309218A (zh) * | 2020-02-11 | 2020-06-19 | 维沃移动通信有限公司 | 信息显示方法、装置及电子设备 |
CN111373703A (zh) * | 2018-07-18 | 2020-07-03 | 华为技术有限公司 | 一种消息的显示方法及终端 |
CN111405043A (zh) * | 2020-03-17 | 2020-07-10 | 维沃移动通信有限公司 | 信息处理方法、装置及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090867B2 (en) * | 2007-10-19 | 2012-01-03 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US9381813B2 (en) * | 2014-03-24 | 2016-07-05 | Harman International Industries, Incorporated | Selective message presentation by in-vehicle computing system |
CN103986646A (zh) * | 2014-05-30 | 2014-08-13 | Tcl集团股份有限公司 | 一种消息传输方法、系统及终端设备 |
CN106936980B (zh) * | 2015-12-31 | 2020-07-14 | 华为终端有限公司 | 一种消息的显示方法及终端 |
JP6880763B2 (ja) * | 2017-01-19 | 2021-06-02 | 株式会社リコー | 情報解析システム、情報解析方法 |
-
2021
- 2021-03-08 CN CN202410517563.1A patent/CN118214736A/zh active Pending
- 2021-03-08 CN CN202110251061.5A patent/CN115118696B/zh active Active
-
2022
- 2022-03-08 EP EP22766304.4A patent/EP4297365A4/en active Pending
- 2022-03-08 WO PCT/CN2022/079757 patent/WO2022188781A1/zh active Application Filing
- 2022-03-08 US US18/549,230 patent/US20240154922A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577967B1 (en) * | 2005-06-30 | 2013-11-05 | Google Inc. | Method and system for managing real-time communications in an email inbox |
US20140085334A1 (en) * | 2012-09-26 | 2014-03-27 | Apple Inc. | Transparent Texting |
US20150350125A1 (en) * | 2014-05-30 | 2015-12-03 | Cisco Technology, Inc. | Photo Avatars |
US20170054663A1 (en) * | 2015-08-18 | 2017-02-23 | Blend Systems, Inc. | Systems and methods for sharing videos and images in a texting environment |
CN107508749A (zh) * | 2017-09-18 | 2017-12-22 | 维沃移动通信有限公司 | 一种消息发送方法及移动终端 |
CN111373703A (zh) * | 2018-07-18 | 2020-07-03 | 华为技术有限公司 | 一种消息的显示方法及终端 |
CN111309218A (zh) * | 2020-02-11 | 2020-06-19 | 维沃移动通信有限公司 | 信息显示方法、装置及电子设备 |
CN111405043A (zh) * | 2020-03-17 | 2020-07-10 | 维沃移动通信有限公司 | 信息处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP4297365A1 (en) | 2023-12-27 |
CN118214736A (zh) | 2024-06-18 |
US20240154922A1 (en) | 2024-05-09 |
CN115118696B (zh) | 2024-05-03 |
EP4297365A4 (en) | 2024-07-31 |
WO2022188781A1 (zh) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7463647B2 (ja) | 通知処理システム、方法および電子デバイス | |
WO2021051986A1 (zh) | 设备之间建立连接的方法及电子设备 | |
WO2021017894A1 (zh) | 一种使用远程sim模块的方法及电子设备 | |
US12081971B2 (en) | Key information synchronization method and system, and device | |
WO2023011376A1 (zh) | 一种北斗通信系统中密钥更新方法、系统及相关装置 | |
WO2022228011A1 (zh) | Quic数据传输方法、装置、客户端及服务端 | |
KR20140051473A (ko) | 사용자 단말 장치, 전자 장치 및 그 제어 방법 | |
CN111464689A (zh) | 一种音频输出方法及终端设备 | |
EP3893529B1 (en) | Communication method based on bluetooth low energy | |
CN106657136B (zh) | 终端设备、隐匿信道通信方法及其装置 | |
CN112087362A (zh) | 一种客户端之间的消息转发方法和装置以及终端 | |
CN110489244A (zh) | 信息处理方法、系统、装置和计算机可读存储介质 | |
WO2020014900A1 (zh) | 一种消息的显示方法及终端 | |
CN115118696B (zh) | 消息的保序方法、可读介质和电子设备 | |
CN113329100B (zh) | 消息推送方法、装置及系统 | |
CN110798830B (zh) | 一种失联设备查找方法及设备 | |
CN109962757A (zh) | 基于视联网的数据传输方法及装置 | |
CN117715001B (zh) | 一种ims短信处理方法、电子设备及存储介质 | |
WO2023236793A1 (zh) | 一种报文通信方法和设备 | |
CN115701016B (zh) | 一种卫星通信系统中鉴权校验方法、系统及相关装置 | |
WO2024222364A1 (zh) | 一种WiFi通信方法及电子设备 | |
CN117951363A (zh) | 推荐信息的方法、装置和系统 | |
CN115913600A (zh) | 用于标识设备的方法、装置、电子设备和介质 | |
CN115550919A (zh) | 设备配对认证方法、装置、发送方设备及接收方设备 | |
CN118233118A (zh) | 一种登录应用的方法及相关装置 |
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 |