CN108471375B - 一种消息处理方法、装置及终端 - Google Patents

一种消息处理方法、装置及终端 Download PDF

Info

Publication number
CN108471375B
CN108471375B CN201710100020.XA CN201710100020A CN108471375B CN 108471375 B CN108471375 B CN 108471375B CN 201710100020 A CN201710100020 A CN 201710100020A CN 108471375 B CN108471375 B CN 108471375B
Authority
CN
China
Prior art keywords
message
target
information
sequence number
instance
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
CN201710100020.XA
Other languages
English (en)
Other versions
CN108471375A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710100020.XA priority Critical patent/CN108471375B/zh
Publication of CN108471375A publication Critical patent/CN108471375A/zh
Application granted granted Critical
Publication of CN108471375B publication Critical patent/CN108471375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-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/18Commands or executable codes

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是本发明实施例提供的预处理信息生成方法;
图5是本发明另一个实施例提供的一种消息处理方法的流程图;
图6(a)是本发明实施例提供的消息获取请求的示意图;
图6(b)是本发明实施例提供的消息获取响应的示意图;
图7是本发明实施例提供的目标消息查询方法流程图;
图8是本发明实施例提供的另一种目标消息查询方法流程图;
图9是本发明实施例提供的消息分类处理方法;
图10(a)是本发明实施例提供的实例号获取请求的示意图;
图10(b)是本发明实施例提供的实例号获取响应的示意图;
图11是本发明实施例提供的对目标实例进行管理的方法的流程图;
图12是本发明实施例提供的一种消息处理装置的框图;
图13是本发明实施例提供的消息内容处理模块的框图;
图14是本发明实施例提供的消息获取响应处理模块的框图;
图15是本发明实施例提供的另一种消息内容处理模块的框图;
图16是本发明实施例提供的另一种消息获取响应处理模块的框图;
图17是本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的实例,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
传统的即时通信通常为CS架构,即Client/Server架构,客户端需要安装特定的程序才可以使用服务端的服务,一个客户端即对应服务器中的一个实例。客户端既可以向服务端主动发起请求,也可以被动接收服务端推送的各种数据。客户端登录时可以与服务端保持一个长连接,服务端把长连接对应的客户端的网络地址记录下来,即可通过网络地址区分不同的实例以实现一个账号多个实例的即时通信模式,即消息接受方的各个实例均可接收到消息发送方发送的消息,并能够确保各个实例收到实时消息,彼此之间互不影响。
与传统的即时通信不同,基于浏览器的即时通信是基于BS架构的,即Browser/Server架构,计算机中的每一个网页均对应服务器端的一个实例,可见在BS架构中,服务器无法通过计算机的网络地址区分不同的实例,从而难以实现一个账号多个实例的即时通信模式,此外,由于浏览器使用的通信协议的限制,服务器只能被动响应浏览器的请求以进行应答,而难以主动向浏览器推送消息,又进一步加大了一个账号多个实例的通信模式的实现难度。虽然万维网联盟最新推出的HTML5协议可以为实现一个账号多个实例的通信模式提供可能,但是,这一协议的普适性不高,大部分的浏览器均不支持。
随着互联网的发展,基于BS架构的即时通信已经成为一个重要而广泛应用的领域,能够提供视频直播、远程教育、办公交流等多种服务,从而与人们的日常沟通紧密联系在一起,而基于BS架构一个账号多个实例的通信模式能够提供有别于单实例的通信模式的更好的用户体验,比如同一家庭成员可以共用同一家庭账号在不同地方的计算机上享受各种服务,不需要每人各自申请一个独立帐号登录;再比如同一个公司成员可以共用同一个公司账号与客户进行交互。此外,现有的浏览器大多支持多页面的打开方式,若用户打开了多个页面,而服务器不能够支持一个账号多个实例的通信模式,则会导致页面丢失消息或者报错,从而影响用户体验,因而一个账号多个实例的通信模式能够避免出现浏览器页面丢失消息的情况,减少通信过程可能发生的异常。
为在BS架构中,在不需要依赖HTML5协议的情况下实现一个账号多个实例的通信模式,并且各个实例彼此之间互不影响,本发明实施例提供了一种消息处理方法、装置及终端。具体地,当用户打开的一个浏览器窗口登录服务器,即在服务器端生成了一个实例。所述多实例可以由同一个浏览器打开的多个窗口生成,也可以是由同一台计算机中的多个浏览器窗口生成,还可以是由不同计算机中的不同浏览器窗口生成。
请参考图1,其示出了本发明一个实施例提供的实施环境的示意图。该实施环境包括:第一终端120、服务器140和第二终端160。
第一终端120和第二终端160均可以为手机、平板电脑、膝上型便携计算机、台式计算机或者计算机构成的集群。第一终端120和第二终端160可以以服务器140为中转以实现消息通信。作为消息接收方的第一终端120或第二终端160中可以存在一个或多个浏览器窗口,每个浏览器窗口即对应服务器140中的一个实例。
服务器140可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者是一个云计算服务中心。具体地,图1中以服务器140为集群架构为例,所述服务器140可以包括:消息上行服务器142和消息下行服务器144。消息上行服务器142和消息下行服务器144之间可通过通信网络建立通信连接。该网络可以是无线网络,也可以是有线网络。
具体地,本发明实施例中上行消息即为浏览器窗口主动向服务器发送的消息,将浏览器窗口的主动发送消息至服务器即为消息上行;相应地,下行消息即为浏览器窗口请求服务器发送的消息,将服务器的消息发送至浏览器窗口即为消息下行。
消息上行服务器142可以用于负责响应上行消息请求,所述上行消息请求包括但不限于消息发送请求。消息下行服务器144可以用于接收并处理消息上行服务器下发过来的数据,并响应下行消息请求,所述下行消息请求包括但不限于消息获取请求和实例号获取请求。所述上行消息请求和/或下行消息请求均可由第一终端120和/或第二终端160中的浏览器窗口发出。具体地,所述下行消息请求可以通过长轮询实现,即不停地主动给服务端发送下行消息请求,以获取服务端最新的数据信息。
如图1所示,以第一终端120(B账号用户)发送消息给第二终端160(A账号用户)为例,第二终端160中可以运行有A账号对应的一个或多个实例。第一终端120将消息上行至消息上行服务器142后,由所述消息上行服务器142对所述消息进行预处理,生成预处理信息,并将所述预处理信息分配至消息下行服务器144。消息下行服务器144一方面接收并处理所述预处理信息;另一方面响应第二终端160中一个或多个实例的下行消息请求,返回B账号用户发送的消息的消息内容,从而实现第一终端120和第二终端160之间的即时通信。
进一步地,第一终端120和第二终端160与服务器140的的通信还可以通过专门的接入层作为中转来实现。
进一步地,消息上行服务器142和消息下行服务器144可以直接进行通信,也可以通过构建信息通道以实现消息上行服务器142和消息下行服务器144之间的通信。
请参考图2,其示出了本发明一个实施例提供的一种消息处理方法的流程图。该方法可应用于图1所示实施环境中的服务器140。该方法可以包括如下步骤:
S101.响应于消息发送请求,得到消息内容和目标账号。
具体地,浏览器的某个窗口向服务器发送消息发送请求,所述消息发送请求为上行消息请求。所述目标账号即为用于接收所述消息内容的接受者的账号。
S102.根据所述消息内容生成预处理信息,并将所述预处理信息发送至所述目标账号对应的全部实例。
本步骤的目的在于确保服务器所维护的目标账号对应的各个实例均能够接收到预处理信息,以便于在后续的消息获取请求的响应过程中不丢消息。以账号B发送消息给账号A为例,账号A可以有一个或多个实例。每个实例对应一个浏览器窗口。
S103.响应于消息获取请求,得到所述消息获取请求的发送方对应的账号和实例号。
所述消息获取请求为下行消息请求,以所述消息获取请求为A账号的第二个实例发出为例,得到所述消息获取请求的发送方对应的账号:A和实例号:2。
S104.根据所述账号和实例号得到对应的目标实例。
在服务器维护的账号A的多个实例中,得到实例号为2的实例,所述实例即为目标实例。
S105.查询所述目标实例以生成消息获取响应,并将所述消息获取响应传输至所述消息获取请求的发送方。
在步骤S102中已经将预处理信息发送至所述目标实例,通过在所述目标实例中查询出所述预处理信息,即可根据所述预处理信息生成消息获取响应,并将所述消息获取响应发送至账号A的第二个实例。
本发明实施例提供了一种消息处理方法,通过在服务器中维护一个或多个实例,并在服务器内部实现消息内容的预处理预处理和预处理信息的分发,实现了在BS架构下的一个账号多个实例模式的即时通信模式,并且能够确保各个实例不丢消息并且互补影响,提升了用户体验。当然,一个账号多个实例的通信模式是对现有单实例通信模式的扩展,单实例是多实例的一种特殊情况,本发明实施例对于一个账号多个实例的即时通信和一个账号单个实例模式的即时通信均可支持,因此具备广泛的应用前景。
请参考图3,其示出了本发明另一个实施例提供的一种消息处理方法的流程图。该方法可应用于图1所示实施环境中的服务器140。所述方法包括:
S201.响应于消息发送请求,解析所述消息发送请求以得到消息内容和目标账号。
S202.生成所述消息内容对应的序列号。
具体地,可以按照获取所述消息发送请求的时间顺序生成序列号。具体地,服务器140可以对消息发送请求的发送方发送至目标账号的消息内容的序列号进行递增管理,所述序列号可以由0开始递增。比如,消息发送请求的发送方已经向目标账号发送了i个消息,则生成的序列号即为i+1。
以账号B向账号A发送消息为例,若在S201的步骤之前,账号B已经向账号A发送了100条消息,则步骤S202中的序列号即为101。
S203.根据所述消息内容和所述序列号生成预处理信息。
S204.判断所述目标账号是否为群账号。
S205.若是,则根据所述群账号获取全部群成员账号。
S206.向每一个群成员账号进行预处理信息的分发,所述分发包括将所述预处理信息发送至群成员账号对应的全部实例。
具体地,对于每一个群账号,均可以存在一个或多个实例。
S207.若否,则将所述预处理信息发送至所述目标账号对应的全部实例。
若目标账号不是群账号,则是个人账号,对于每一个个人账号,均可以存在一个或多个实例。
具体地,若服务器140为集群,则实例可以存储于下行消息服务器144,因此,需要将预处理信息在上行消息服务器142生成,并将其传输至消息服务器144。
在目标个人账号或者群成员账号对应多个实例的情况下,每个实例均需要维护预处理信息,因此,会产生多个预处理信息。为节省存储空间,避免数据冗余,本发明实施例提供了一种预处理信息生成方法,请参考图4,其示出了本发明实施例提供的预处理信息生成方法,包括:
S2031.存储所述消息内容以得到存储地址。
S2032.生成所述消息内容对应的序列号。
S2033.根据所述存储地址和所述序列号生成预处理信息。
通过将消息内容存储于某个存储空间,而根据所述消息内容生成的预处理信息仅仅包括所述消息内容的存储地址,使得需要生成多个预处理信息的情况下,不再需要拷贝多份消息内容,从而节省存储空间,提升服务器性能。
在本发明实施例中当服务器会为每一个打开的浏览器页面均维护一个实例,当接收到发给目标帐号的消息后,服务器根据接收到的消息得到预处理信息并将所述预处理信息发送至目标账号的所有实例。目标账号的各个实例对应的浏览器页面均可自行通过长轮询获取实例中的预处理信息,从而得到发送给目标账号的消息。当服务器长时间没有接收到某个实例对应的浏览器页面的长轮询请求,则服务器认为该浏览器页面已经下线,清除该浏览器页面对应的实例。
本实施例通过提供一种消息处理方法,可以实现向个人账号和群账号中的各个实例均发送同一个消息的技术效果,不仅能够支持个人用户之间的单账号多实例的即时通信,还能够支持个人与群组之间的单账号多实例的即时通信。通过提供预处理信息生成方法,能够使得预处理信息仅包括消息内容的存储地址而不必包括消息信息的全部内容,从而减少预处理信息的数据量,节省服务器存储空间。
请参考图5,其示出了本发明另一个实施例提供的一种消息处理方法的流程图。该方法可应用于图1所示实施环境中的服务器140。所述方法包括:
S301.响应于消息获取请求,得到所述消息获取请求的发送方对应的账号和实例号。
具体地,浏览器的某个实例(页面)向服务器发送消息获取请求,所述消息获取请求可以通过长轮询发出,得到所述消息获取请求即可得到所述消息获取请求的发送方的账号和实例号。
S302.根据所述账号和实例号得到对应的目标实例。
所述目标实例中维护有一条或多条预处理信息,每一条预处理信息中可以包括序列号。
所述消息获取请求中包括消息获取请求发送方的实例号和序列号,浏览器中的不同的页面可以对应不同的实例号;在不同的浏览器中开启页面得到的实例号也不同。一个账号可以同时应用于一个或多个实例号。
若S302中若成功获取目标实例,即可继续进行后续步骤,否则,停止响应所述消息获取请求。
在其它的实施例中,若S302中不能获取到目标实例,还可以向所述消息获取请求的发送方返回请求失败的响应,所述请求失败的响应中还可以包括请求失败的原因。
S303.解析所述消息获取请求以得到所述消息获取请求的序列号。
请参考图6(a),其示出了消息获取请求的示意图。图6(a)中ReqCmd:longPollingMsg表示通过长轮询发送消息获取请求,InstanceId表示实例号,LongPollingSeq表示序列号。
S304.根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号。
S305.判断查询结果是否为空。
S306.若不为空,则根据所述目标信息生成消息获取响应,并将所述消息获取响应返回所述消息获取请求的发送方。
具体地,所述目标信息可以有一条或多条,对每一条目标信息均执行下述步骤:若所述目标信息包括消息内容和所述消息内容对应的序列号,可以根据所述消息内容和序列号生成消息获取数据段,拼接所述消息获取数据段得到消息获取响应,若所述消息获取数据段只有一个,则直接得到消息获取响应。
在另一种可行的实施例中,对每一条目标信息均执行下述步骤:若所述目标消息包括了消息内容的存储地址,则得到所述存储地址和所述目标信息的序列号;根据所述存储地址得到对应的消息内容;根据所述目标信息的序列号和所述消息内容生成消息获取数据段,拼接所述消息获取数据段得到消息获取响应,若所述消息获取数据段只有一个,则直接得到消息获取响应。
请参考图6(b),其示出了消息获取响应的示意图。其中RspCmd:LongPollingMsg即表示对于长轮询中消息获取请求的响应。MsgList用于存储得到的消息获取数据段,对于序列号为10的消息获取请求,查询到了序列号为11和12的目标信息对应的消息获取数据段。消息获取请求的发送方即可显示序列号为11和12的消息内容。
具体地,浏览器的某个实例(页面)在具体显示的过程中,按序列号显示消息获取数据段,序列号小的消息内容优先显示。即优先显示序列号为11的消息内容,后显示序列号为12的消息内容。在下一次轮询中,所述浏览器的某个实例即可将序列号12作为消息获取请求的序列号继续向服务器请求消息。
S307.若为空,则返回内容为空的消息获取响应。
若所述消息获取请求的发送方得到空的消息获取响应,即进入下一个长轮询步骤,重新发出消息获取请求。
在另一个实施例中,步骤S307也可以省略,若消息获取请求的发送方在消息获取请求发出后,经过第三预设时间仍然未接收到来自服务器的消息获取响应,则进入下一个长轮询步骤,重新发出消息获取请求。所述第三预设时间可以为第一预设时间的整数倍,并且可以根据实际情况进行设定,也可以响应于某个指令进行调整。
为进一步提升服务器性能,减少内容为空的消息获取响应的出现概率,降低消息获取请求的发送方轮询的频率,还可以对上述实施例查询目标消息的方法进行优化,即通过循环多次获取查询目标信息提升目标信息命中的概率。请参考图7,其示出了目标消息查询方法流程图,所述方法包括:
S3041.等待第一预设时间。
第一预设时间可以根据实际情况进行设定,也可以响应于管理员的指令进行实时调整。S104执行期间,所述消息获取请求被挂起,目的在于等待所述目标实例聚集目标信息,以便于统一将聚集到的目标信息返回至消息获取请求的发送方。
第一预设时间设置过长,会导致消息获取请求的发送方等待时间过长,从而影响即时通信的及时性;若第一预设时间设置过短,会导致发送方轮询频率过于频繁,过度占用服务器资源,本实施例中,第一预设时间优选设置为200ms,在第一预设时间为200ms的情况下,消息获取请求的发送方是无感知的,并且不会为服务器带来明显负担。
S3042.根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号。
S3043.判断查询结果是否为空。
S3044.若不为空,则直接得到查询结果。
S3045.若为空,则判断等待的总时间是否到达第二预设时间。
第二预设时间是第一预设时间的整数倍,并且可以根据实际情况进行设定,也可以响应于管理员的指令进行实时调整。
第二预设时间为一次消息获取请求的最大响应时间,第二预设时间的设置主要用于定期响应长轮询发出请求;若没有收到消息,也能够及时反馈至请求的发送方,避免没有消息的时候,后台服务器不做响应,请求的发送方出现卡死等待的情况。
S3046.若否,则返回所述等待第一预设时间步骤。
若未到达第二预设时间,则返回执行步骤S1041,即继续等待所述目标实例聚集目标消息。
S3047.若是,则查询结果为空。
在其它可行的实施例中,请参考图8,其示出了另一种目标消息查询方法流程图,所述方法包括:
S30410.根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号。
S30420.判断查询结果是否为空。
S30430.若不为空,则直接得到查询结果。
S30440.若为空,则判断等待的总时间是否到达第二预设时间。
S30450.若否,则等待第一预设时间后返回步骤S30410。
S30460.若是,则查询结果为空。
本发明实施例提供的消息处理方法中,浏览器的某个页面可以通过长轮询发出消息获取请求,服务器在消息获取请求中得到实例号进而得到目标实例,根据目标实例查找到目标信息进而生成消息获取响应,以此实现一个账号多个实例的通信模式。本发明实施例还提供了两种目标信息查询方法,通过循环多次获取查询目标信息提升了目标信息命中的概率,从而降低消息获取请求的发送方轮询的频率。
进一步地,在步骤S101之前,请参考图9,其示出了本发明实施例进一步提供的消息分类处理方法,该方法可应用于图1所示实施环境中的服务器140。所述方法包括:
S1.判断接收到的请求是否为消息获取请求。
S2.若是,则响应所述消息获取请求。
具体地,所述消息获取请求的响应方法可以参见步骤S301-S307。
S3.若否,则判断所述请求是否为实例号获取请求。
S4.若是,则为所述实例号获取请求的发送方生成一个实例,并为所述实例分配实例号。
S5.根据所述实例号生成实例号获取响应,将所述实例号获取响应返回至所述请求的发送方。
具体地,请参考图10(a),其示出了实例号获取请求的示意图,其中ReaCmd:GetInstanceId即为实例号获取请求。请参考图10(b),其示出了实例号获取响应的示意图,其中ResCmd:GetInstanceId即为实例号获取响应,InstanceId为获取到的实例号。
本发明实施例提供消息分类处理方法,某个浏览器页面在登录服务器之后,首先向服务器发送实例号获取请求,请求分配一个实例号,服务器响应于所述实例号获取请求构建实例并分配实例号,所述实例号即为所述浏览器页面对应实例的唯一标识并通过后续发出的消息获取请求返回至服务器,以便于服务器定位目标实例和生成消息获取响应。
进一步地,请参考图11,其示出了本发明实施例进一步提供的对目标实例进行管理的方法,所述目标实例可存储于服务器140;若服务器140为集群架构,也可存储于消息下行服务器144。所述方法包括:
S10.在所述目标实例中删除所述目标信息。
具体地,所述目标信息可以为步骤S304中获取的目标信息。对应于步骤S2031-S2033,若所述目标信息存储的是消息内容的存储地址而非消息内容本身,则当记录有消息内容的存储地址的目标信息均被删除后,所述消息内容也被清除。
S20.在所述目标实例中查询过期信息,所述过期信息的序列号不大于所述消息获取请求的序列号。
服务器中的实例用于维护预处理信息,所述预处理信息在步骤S102中即可得到,实例中满足查询要求的信息即为目标信息,所述目标信息在步骤S304可得到,过期的预处理信息即为过期信息。以图6(a)(b)为例,其消息获取请求的序列号为10,目标信息的序列号为11和12,而过期信息即为目标实例中序列号小于10的预处理信息。
S30.判断查询结果是否为空。
S40.若否,则删除所述过期信息。
进一步地,为避免目标实例中维护的预处理信息过多产生异常,本发明实施例还提供了预处理信息管理方法,所述方法可以应用于服务器140或消息下行服务器144,所述方法包括:
判断实际存储的预处理消息的总数是否到达预设的容量阈值,若是,则删除最先存储的预处理信息。相应地,对应于步骤S2031-S2033,若所述预处理信息被删除,则预处理信息中的存储地址所指向的消息内容也被删除。
本发明实施例提供了服务器对目标实例的管理方法以及对于预处理信息的管理方法,从而能够在确保支持单实例和多实例的即时通信的基础上,对服务器的存储空间进行充分合理的利用,保证服务器能够有足够的资源响应各个浏览器页面的请求,从而确保用户能够有良好的体验。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参考图12,其示出了一种消息处理装置的框图,该装置能够实现上述方法示例中服务器140的功能;若服务器140为集群架构,也可以实现消息上行服务器142和消息下行服务器144的功能。所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:
消息发送请求响应模块401,用于响应于消息发送请求,得到消息内容和目标账号。可用于执行方法实施例中的步骤S101。
消息内容处理模块402,用于根据所述消息内容生成预处理信息,并将所述预处理信息发送至所述目标账号对应的全部实例。可用于执行方法实施例中的步骤S102。
消息获取请求响应模块403,用于响应于消息获取请求,得到所述消息获取请求的发送方对应的账号和实例号。可用于执行方法实施例中的步骤S103。
目标实例获取模块404,用于根据所述账号和实例号得到对应的目标实例。可用于执行方法实施例中的步骤S104。
消息获取响应处理模块405,用于查询所述目标实例以生成消息获取响应,并将所述消息获取响应传输至所述消息获取请求的发送方。可用于执行方法实施例中的步骤S105。
具体地,请参见图13,其示出了消息内容处理模块的框图,所述消息内容处理模块402包括:
第一序列号生成单元4021,用于生成所述消息内容对应的序列号。可用于执行方法实施例中的步骤S202。
第一预处理信息生成单元4022,用于根据所述消息内容和所述序列号生成预处理信息。可用于执行方法实施例中的步骤S203。
具体地,请参见图14,其示出了消息获取响应处理模块的框图,所述消息获取响应处理模块405包括:
第一解析单元4051,用于解析所述消息获取请求以得到所述消息获取请求的序列号。可用于执行方法实施例中的步骤S303。
第一查询单元4052,用于根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号。可用于执行方法实施例中的步骤S304。
第一消息获取响应生成单元4053,用于当查询结果不为空时,则根据所述目标信息生成消息获取响应。可用于执行方法实施例中的步骤S305-S306。
在其它可行的实施例中,请参见图15,其示出了另一种消息内容处理模块的框图,所述消息内容处理模块402包括:
存储地址获取单元40210,用于存储所述消息内容以得到存储地址。可用于执行方法实施例中的步骤S2031。
第二序列号生成单元40220,生成所述消息内容对应的序列号。可用于执行方法实施例中的步骤S2032。
第二预处理信息生成单元40230,根据所述存储地址和所述序列号生成预处理信息。可用于执行方法实施例中的步骤S2033。
在其它可行的实施例中,请参见图16,其示出了另一种消息获取响应处理模块的框图,所述消息获取响应处理模块405包括:
第二解析单元40510,用于解析所述消息获取请求以得到所述消息获取请求的序列号。可用于执行方法实施例中的步骤S303。
第二查询单元40520,用于根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号。可用于执行方法实施例中的步骤S304。
第二消息获取响应生成单元40530,用于当查询结果不为空时,得到所述目标信息中的存储地址和所述目标信息中的序列号;根据所述存储地址得到对应的消息内容;根据所述目标信息的序列号和所述消息内容生成消息获取响应。可用于执行方法实施例中的步骤S305-S306。
进一步地,所述消息获取响应处理模块405还包括:第三消息获取响应生成单元,用于当查询结果为空时,则在第一预设时间后返回执行所述根据所述序列号在所述目标实例中查询目标信息的步骤直至达到第二预设时间。
进一步地,所述装置还可以包括:
第一删除模块406,用于在所述目标实例中删除所述目标信息。可用于执行方法实施例中的步骤S10。
过期信息查询模块407,用于在所述目标实例中查询过期信息,所述过期信息的序列号不大于所述消息获取请求的序列号。可用于执行方法实施例中的步骤S20。
第二删除模块408,用于当查询结果不为空时,则删除所述过期信息。可用于执行方法实施例中的步骤S30-S40。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图17,其示出了本发明一个实施例提供的终端的结构示意图。该终端用于实施上述实施例中提供的消息处理方法中服务器140的功能;若所述服务器140为集群架构,则该终端还可用于实施消息上行服务器142和/或消息下行服务器144的功能。
具体来讲:
所述服务器1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述服务器1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为服务器1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本发明的各种实施例,所述服务器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述服务器的方法的指令。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由终端的处理器执行以完成上述方法实施例中的各个步骤,或者上述指令由服务器的处理器执行以完成上述方法实施例中后台服务器侧的各个步骤。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联实例的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联实例是一种“或”的关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种消息处理方法,其特征在于,所述方法应用于服务器,包括:
响应于消息发送请求,得到消息内容和目标账号;
根据所述消息内容和基于所述消息内容生成的序列号生成预处理信息,并将所述预处理信息发送至所述目标账号对应的全部实例;
响应于消息获取请求,得到所述消息获取请求的发送方对应的账号和实例号;
根据所述账号和实例号得到对应的目标实例;
根据所述消息获取请求中的序列号查询所述目标实例以生成消息获取响应,并将所述消息获取响应传输至所述消息获取请求的发送方。
2.根据权利要求1所述的方法,其特征在于,所述根据所述消息获取请求中的序列号查询所述目标实例以生成消息获取响应,包括:
解析所述消息获取请求以得到所述消息获取请求的序列号;
根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号;
当查询结果不为空时,则根据所述目标信息生成消息获取响应。
3.根据权利要求1所述的方法,其特征在于,所述根据所述消息内容和基于所述消息内容生成的序列号生成预处理信息,包括:
存储所述消息内容以得到存储地址;
生成所述消息内容对应的序列号;
根据所述存储地址和所述序列号生成预处理信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述消息获取请求中的序列号查询所述目标实例以生成消息获取响应包括:
解析所述消息获取请求以得到所述消息获取请求的序列号;
根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号;
当查询结果不为空时,得到所述目标信息中的存储地址和所述目标信息中的序列号;根据所述存储地址得到对应的消息内容;根据所述目标信息的序列号和所述消息内容生成消息获取响应。
5.根据权利要求1或4所述的方法,其特征在于,所述查询所述目标实例以生成消息获取响应还包括:
当查询结果为空时,则在第一预设时间后返回执行所述根据所述序列号在所述目标实例中查询目标信息的步骤直至达到第二预设时间。
6.根据权利要求1或4所述的方法,其特征在于,在生成消息获取响应之后,还包括:
在所述目标实例中删除所述目标信息;
在所述目标实例中查询过期信息,所述过期信息的序列号不大于所述消息获取请求的序列号;
当查询结果不为空时,则删除所述过期信息。
7.一种消息处理装置,其特征在于,所述装置运行于服务器,包括:
消息发送请求响应模块,用于响应于消息发送请求,得到消息内容和目标账号;
消息内容处理模块,用于根据所述消息内容和基于所述消息内容生成的序列号生成预处理信息,并将所述预处理信息发送至所述目标账号对应的全部实例;
消息获取请求响应模块,用于响应于消息获取请求,得到所述消息获取请求的发送方对应的账号和实例号;
目标实例获取模块,用于根据所述账号和实例号得到对应的目标实例;
消息获取响应处理模块,用于根据所述消息获取请求中的序列号查询所述目标实例以生成消息获取响应,并将所述消息获取响应传输至所述消息获取请求的发送方。
8.根据权利要求7所述的装置,其特征在于,所述消息内容处理模块包括:
第一序列号生成单元,用于生成所述消息内容对应的序列号;
第一预处理信息生成单元,用于根据所述消息内容和所述序列号生成预处理信息。
9.根据权利要求7或8所述的装置,其特征在于,所述消息获取响应处理模块包括:
第一解析单元,用于解析所述消息获取请求以得到所述消息获取请求的序列号;
第一查询单元,用于根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号;
第一消息获取响应生成单元,用于当查询结果不为空时,则根据所述目标信息生成消息获取响应。
10.根据权利要求7所述的装置,其特征在于,所述消息内容处理模块包括:
存储地址获取单元,用于存储所述消息内容以得到存储地址;
第二序列号生成单元,用于生成所述消息内容对应的序列号;
第二预处理信息生成单元,用于根据所述存储地址和所述序列号生成预处理信息。
11.根据权利要求10所述的装置,其特征在于,所述消息获取响应处理模块包括:
第二解析单元,用于解析所述消息获取请求以得到所述消息获取请求的序列号;
第二查询单元,用于根据所述序列号在所述目标实例中查询目标信息;所述目标信息的序列号大于所述消息获取请求的序列号;
第二消息获取响应生成单元,用于当查询结果不为空时,得到所述目标信息中的存储地址和所述目标信息中的序列号;根据所述存储地址得到对应的消息内容;根据所述目标信息的序列号和所述消息内容生成消息获取响应。
12.根据权利要求7或11所述的装置,其特征在于,所述消息获取响应处理模块还包括:
第三消息获取响应生成单元,用于当查询结果为空时,则在第一预设时间后返回执行所述根据所述序列号在所述目标实例中查询目标信息的步骤直至达到第二预设时间。
13.根据权利要求7或11所述的装置,其特征在于,所述装置还包括:
第一删除模块,用于在所述目标实例中删除所述目标信息;
过期信息查询模块,用于在所述目标实例中查询过期信息,所述过期信息的序列号不大于所述消息获取请求的序列号;
第二删除模块,用于当查询结果不为空时,则删除所述过期信息。
14.一种消息处理终端,其特征在于,所述终端包括权利要求7-13中任意一项所述的消息处理装置。
15.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有指令,所述指令被执行用于实现权利要求1-6中任意一项所述的一种消息处理方法。
CN201710100020.XA 2017-02-23 2017-02-23 一种消息处理方法、装置及终端 Active CN108471375B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710100020.XA CN108471375B (zh) 2017-02-23 2017-02-23 一种消息处理方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710100020.XA CN108471375B (zh) 2017-02-23 2017-02-23 一种消息处理方法、装置及终端

Publications (2)

Publication Number Publication Date
CN108471375A CN108471375A (zh) 2018-08-31
CN108471375B true CN108471375B (zh) 2021-07-16

Family

ID=63266668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710100020.XA Active CN108471375B (zh) 2017-02-23 2017-02-23 一种消息处理方法、装置及终端

Country Status (1)

Country Link
CN (1) CN108471375B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109067910A (zh) * 2018-09-13 2018-12-21 乐蜜有限公司 一种消息拉取的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025648B (zh) * 2009-09-16 2014-12-03 腾讯科技(深圳)有限公司 一种即时通讯的方法和服务器
CN102368764B (zh) * 2011-09-10 2016-08-31 上海量明科技发展有限公司 一种通过多点登录进行通信的方法、系统及客户端
CN103326925B (zh) * 2012-03-23 2016-06-15 腾讯科技(深圳)有限公司 一种消息推送方法及装置
CN103888433B (zh) * 2012-12-21 2017-08-04 北京神州泰岳软件股份有限公司 一种浏览器客户端与im客户端之间通信的方法和系统
CN105704008B (zh) * 2015-12-31 2019-05-31 北京奇艺世纪科技有限公司 一种网页即时通讯方法、系统及终端
CN105634929A (zh) * 2016-02-18 2016-06-01 浪潮软件集团有限公司 一种基于web网页的即时通信方法及装置

Also Published As

Publication number Publication date
CN108471375A (zh) 2018-08-31

Similar Documents

Publication Publication Date Title
US9722862B2 (en) Computer system to support failover in an event stream processing system
CN109547511B (zh) 一种web消息实时推送方法、服务器、客户端及系统
US8544075B2 (en) Extending a customer relationship management eventing framework to a cloud computing environment in a secure manner
KR102167613B1 (ko) 메시지 푸시 방법 및 장치
US20180343214A1 (en) Information Exchange Method, Client, and Apparatus
CN115004673B (zh) 消息推送方法、装置、电子设备及计算机可读介质
US11616686B1 (en) Cluster management
CN108390933B (zh) 消息分发方法、装置、服务器及存储介质
KR20140072044A (ko) 다중-소스 푸시 통지를 다수의 타겟들로의 분배 기법
JP2014523568A (ja) 効率的な状態調整
US10997538B1 (en) Resource management
CN112118315A (zh) 数据处理系统、方法、装置、电子设备和存储介质
CN111478781B (zh) 一种消息广播的方法和装置
WO2015021898A1 (zh) 文件共享方法、服务器及终端
US10489179B1 (en) Virtual machine instance data aggregation based on work definition metadata
CN116303608A (zh) 一种应用服务的数据处理方法和装置
CN109088918B (zh) 一种交互方法、客户端设备及服务端设备
CN108471375B (zh) 一种消息处理方法、装置及终端
CN110798495A (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
CN106789568A (zh) 一种通讯信息获取方法及装置
CN108076111B (zh) 一种在大数据平台中分发数据的系统及方法
US11588914B2 (en) Maintaining minimum interface functionality in an absence of a push-based communications connection in a group-based communication system
CN115629909A (zh) 业务数据处理的方法、装置、电子设备和存储介质
CN114900489A (zh) 一种消息处理方法、装置、电子设备及存储介质
US10346366B1 (en) Management of a data processing pipeline

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