CN111327511B - 即时通讯方法、***、终端设备与存储介质 - Google Patents
即时通讯方法、***、终端设备与存储介质 Download PDFInfo
- Publication number
- CN111327511B CN111327511B CN201811533331.6A CN201811533331A CN111327511B CN 111327511 B CN111327511 B CN 111327511B CN 201811533331 A CN201811533331 A CN 201811533331A CN 111327511 B CN111327511 B CN 111327511B
- Authority
- CN
- China
- Prior art keywords
- message
- server
- token
- terminal device
- open
- 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
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]
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- 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/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开了一种即时通讯方法、***、终端设备与存储介质,该方法包括:开放服务器接收第一终端设备发送的第一消息,并生成第一终端设备的令牌,保存所述第一消息、以及第一消息与令牌的映射关系至存储服务器,并将令牌发送给第一终端设备;代理服务器接收第一终端发送的第二消息,并从N个消息服务器中为第一终端设备确定目标消息服务器,将第二消息保存至目标消息服务器对应的消息队列中;目标消息服务器向第二终端设备发送第三消息,以使第二终端设备根据该令牌获取第一消息。这样使得消息服务器可以根据业务规模自由进行横向扩展,能够支撑海量长连接接入。
Description
技术领域
本申请实施例涉及互联网技术领域,尤其涉及一种即时通讯方法、***、终端设备与存储介质。
背景技术
随着互联网技术的快速发展,即时通讯***的重要性越来越高,很多产品线都会涉及到即时通讯***的使用,但产品线的性质和业务规模的不同也决定了即时通讯***设计的复杂性。对于很多并发小,或者用户量少的产品线来说,为了节约研发投入,可以采用开源的即时通讯***,比如Openfire等,Openfire是免费的、开源的、基于可拓展通讯和表示协议(XMPP)、采用Java编程语言开发的实时协作服务器。
但是,Openfire基于XMPP(Extensible Messaging and Presence Protocol,可扩展通讯和表示协议),XMPP协议的主要缺点就是传输数据量大,数据传输使用XML格式,因其复杂的通讯过程,性能会大大降低。同时,Openfire开源版本主要是单机部署,不支持横向扩展,所以支持的并发连接有限。
发明内容
本申请实施例提供一种即时通讯方法、***、终端设备与存储介质。
第一方面,本申请实施例提供一种即时通讯方法,所述方法应用于即时通讯***,所述即时通讯***包括:用于代理TCP的代理服务器、N个消息服务器、kafka、存储服务器和开放服务器,每个所述消息服务器对应所述kafka上的一个消息队列,所述N为正整数;
所述开放服务器接收第一终端设备发送的第一消息,并生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器,并将所述令牌发送给所述第一终端设备;
所述代理服务器接收所述第一终端设备根据所述令牌发送的第二消息,并从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;
所述目标消息服务器向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌获取所述第一消息。
在第一方面的一种实现方式中,所述以使所述第二终端设备根据所述令牌获取所述第一消息,包括:
所述开放服务器接收所述第二终端设备根据所述令牌发送的第四消息,并根据所述第四消息中包括的所述令牌,从所述存储服务器中获取所述令牌对应的所述第一消息,将所述第一消息发送给所述第二终端设备。
在第一方面的另一种实现方式中,所述kafka包括共用消息队列,所述代理服务器将所述第二消息保存至所述目标消息服务器对应的消息队列中,包括:
所述目标消息服务器接收所述代理服务器发送的第二消息,将所述第二消息保存至所述共用消息队列中;
所述存储服务器从所述共用消息队列中消费第二消息,并对所述第二消进行预处理以及将预处理后的第二消息保存至所述目标消息服务器对应的消息队列中。
在第一方面的另一种实现方式中,所述开放服务器将所述第一消息发送给所述第二终端设备之后,所述方法还包括:
所述开放服务器接收所述第二终端设备发送的第五消息,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息;
所述开放服务器根据所述第五消息将所述第一消息标记为已读,并向所述第二终端设备发送回执消息。
可选的,所述开放服务器包括Http和/或RPC接口。
可选的,所述第一消息、所述第四消息、所述第五消息中的至少一种为Http消息或RPC消息。
可选的,所述第二消息和所述第三消息中的至少一种为TCP消息。
可选的,所述存储服务器采用Hbase存储。
第二方面,本申请实施例提供一种即时通讯方法,所述方法应用于第一终端设备,所述方法包括;
向开放服务器发送第一消息,以使所述开放服务器生成所述第一终端设备的令牌,并保存所述第一消息、以及所述第一消息与所述令牌的映射关系至存储服务器;
接收所述开放服务器发送的所述令牌;
根据所述令牌向所述代理服务器发送第二消息,以使所述代理服务器从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,并将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌。
第三方面,本申请实施例提供一种即时通讯方法,所述方法应用于第二终端设备,所述方法包括;
向目标消息服务器发送第三消息,所述第三消息中包括所述令牌;
根据所述令牌获取所述第一消息。
在第三方面的一种实现方式中,所述第二终端设备根据所述令牌获取所述第一消息,包括:
向所述开放服务器发送第四消息,所述第四消息包括所述令牌;以使所述开放服务器根据所述令牌,从所述存储服务器中获取所述令牌对应的所述第一消息;
接收所述开放服务器发送的所述第一消息。
在第三方面的另一种实现方式中,所述第二终端设备接收所述开放服务器发送的所述第一消息之后,所述方法还包括:
向所述开放服务器发送第五消息,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息;以使所述开放服务器根据所述第五消息将所述第一消息标记为已读;
接收所述开放服务器发送的回执消息,所述回执消息用于指示所述第一消息标记为已读。
第四方面,本申请实施例提供一种即时通讯***,包括:用于代理TCP的代理服务器、N个消息服务器、kafka、存储服务器和开放服务器,每个所述消息服务器对应所述kafka上的一个消息队列,所述N为正整数;
所述开放服务器,用于接收第一终端设备发送的第一消息,并生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器,并将所述令牌发送给所述第一终端设备;
所述代理服务器,用于接收所述第一终端设备根据所述令牌发送的第二消息,并从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;
所述目标消息服务器,用于向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌获取所述第一消息。
第五方面,本申请实施例提供一种终端设备,包括:
发送器,用于向开放服务器发送第一消息,以使所述开放服务器生成所述第一终端设备的令牌,并保存所述第一消息、以及所述第一消息与所述令牌的映射关系至存储服务器;
接收器,用于接收所述开放服务器发送的所述令牌;
所述发送器,还用于根据所述令牌向所述代理服务器发送第二消息,以使所述代理服务器从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,并将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌。
第六方面,本申请实施例提供一种终端设备,包括:
发送器,用于向目标消息服务器发送第三消息,所述第三消息中包括所述令牌;
处理器,用于根据所述令牌获取所述第一消息。
在第六方面的一种实现方式中,所述终端设备还包括接收器,包括:
所述发送器,具体用于向所述开放服务器发送第四消息,所述第四消息包括所述令牌;以使所述开放服务器根据所述令牌,从所述存储服务器中获取所述令牌对应的所述第一消息;
所述接收器,具体用于接收所述开放服务器发送的所述第一消息。
在第六方面的另一种实现方式中,所述第二终端设备接收所述开放服务器发送的所述第一消息之后,所述方法还包括:
所述发送器,具体用于向所述开放服务器发送第五消息,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息;以使所述开放服务器根据所述第五消息将所述第一消息标记为已读;
所述接收器,用于接收所述开放服务器发送的回执消息,所述回执消息用于指示所述第一消息标记为已读。
第七方面,本申请实施例提供一种计算机存储介质,所述存储介质中存储计算机程序,所述计算机程序在执行时实现如第一方面任一项所述的即时通讯方法。
本申请实施例提供的即时通讯方法、***、终端设备与存储介质,通过开放服务器接收第一终端设备发送的第一消息,并生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器,并将所述令牌发送给所述第一终端设备;所述代理服务器接收所述第一终端设备根据所述令牌发送的第二消息,并从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;所述目标消息服务器向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌获取所述第一消息。这样使得消息服务器可以根据业务规模自由进行横向扩展,不再受单机CPU及内存等约束,能够支撑海量长连接接入,具有很强的伸缩性,具备非常好的鲁棒性。同时,本申请实施例采用TCP协议结合Http协议和/或RPC协议来简化通讯模型,提升传输稳定性和可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的即时通讯***的结构示意图;
图2为本实施例一提供的即时通讯方法的流程示意图;
图3为本实施例二提供的即时通讯方法的流程示意图;
图4为本实施例二涉及的即时通讯***的结构示意图;
图5为本实施例三提供的即时通讯方法的流程示意图;
图6为本申请实施例涉及的一种测试结果示意图;
图7为本实施例一提供的即时通讯***法的结构示意图;
图8为本申请实施例提供的终端设备的结构示意图;
图9为本申请实施例一提供的终端设备的结构示意图;
图10为本申请实施例二提供的终端设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的基于Openfire的即时通讯***,通讯过程复杂,性能低,且不支持横向扩展,无法实现海量用户设备的接入。
为了解决上述技术问题,本申请实施例提出一种即时通讯***,该即时通讯***使用代理服务器来代理TCP(Transmission Control Protocol,传输控制协议),例如,在代理服务器中安装Nginx TCP代理模块,用于TCP的负载均衡,实现了消息服务器的横向扩展,如果用户接入量持续增大,可以通过增加消息服务器的方式来提升消息服务的性能。
同时,为每个消息服务器分配一个消息队列(例如Kafka Topic),实现对消息的分布存储,以使消息服务器从对应的消息队列中获取消息,保证了各消息服务器之间的独立性。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本申请实施例提供的即时通讯***的结构示意图。如图1所示,本实施例的即时通讯***包括:用于代理TCP的代理服务器、N个消息服务器、kafka、存储服务器和开放服务器,每个所述消息服务器对应所述kafka服务器上的一个消息队列,所述N为正整数。
具体的,如图1所示,本实施例的代理服务器可以为Nginx代理服务器,该Nginx代理服务器用于代理TCP,用于实现TCP的负载均衡。例如,在该Nginx代理服务器上安装NginxTCP代理模块(nginx_tcp_proxy_module)。或者,使用Nginx Plus的商业授权版的TCP负载均衡功能。这样,当用户海量设备通过代理服务器接入消息服务器时,代理服务器可以实现四层负载均衡。即可以从多个消息服务器中为用户设备选择一台消息服务器接入,进而使得各消息服务器之间相互独立,便于消息服务器的横向扩展。
本实施例的消息服务器可以是IM(Instant Messaging,即时通讯协议)服务器,消息服务器的主要作用是建立TCP连接。其中,消费服务器的数量为1个或多个,1台消息服务器可以支持多个用户设备接入,例如1台消息服务器支持10万台用户设备接入。本实施例对消息服务器的数量不做限制,具体根据实际需要进行确定。当用户设备增加时,可以增加消息服务器的数量。
本实施例的kafka为一个由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息***,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析***,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。Kafka包括一台或多台服务器,kafka集群存储的消息是以topic为类别记录的。
本实施例的kafka为每个消息服务器分配一个消息队列,例如Kafka Topic,这样,每个消息服务器可以将各自的消息保存在各自对应的消息队列中。
本实施例的即时通讯***可以包括一个存储服务器,也可以包括多个存储服务器,本实施例对存储服务器的数量不做限制,具体根据实际需要进行确定。
本实施例的开放服务器可以为seek服务器,seek服务器用于接收用户设备发送的端连接消息,例如Http(HyperText Transfer Protocol,超文本传输协议)消息或RPC(Remote Procedure Call,远程过程调用协议)消息。该Seek服务器用于查询用户发送的消息详情,接口接收回执处理,用来获取请求token,或者提供消息发送日志查询接口,供管理员使用。
本实施例对开放服务器的数量不做限制,可以为一个或多个,具体根据实际需要确定。
下面结合图1所示的即时通讯***,对本实施例的即时通讯方法进行详细描述。
图2为本实施例一提供的即时通讯方法的流程示意图。本实施例涉及的是第一终端设备通过图1所示的即时通讯***向第二终端设备发送的消息为例进行说明。如图2所示,本实施例的方法可以包括:
S101、第一终端设备向开放服务器发送第一消息。
S102、开放服务器根据第一消息,生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器。
S103、开放服务器将所述令牌发送给所述第一终端设备。
当第一终端设备需要向第二终端设备发送第一消息时,将该第一消息发送给开放服务器。例如,第一终端设备使用Http或RPC接口向开放服务器发送第一消息,该第一消息可以为POST消息,该POST消息可以为:{"to":"第二终端设备@im-xx.xx.com/app","id":"98ef99199928","body":{"content":"文本"},"node":"message","created":"1505204095053","device":"app","from":"第一终端设备@im-xx.xx.com/app","group":"point"}。
开放服务器接收到第一消息后,根据该第一消息为第一终端设备生成令牌(token),并建立该token与第一消息之间的映射关系,将该映射关系和第一消息保存在存储服务器中。将生成的token发送给第一终端设备。
上述S101至S103的步骤可以理解为第一终端设备首次登陆即时通讯***的过程,登陆后,开放服务器将第一消息进行保存,并为第一终端设备生成token。在后续的交互流程中,均是以该token为基础进行信息的交流,而第一消息始终保存在存储服务器中,这样可以避免第一消息进行多次传输时,造成第一消息的丢失或损坏,进而提高了第一消息的安全性。
S104、第一终端设备根据所述令牌向代理服务器发送第二消息。
其中,所述第二消息包括所述令牌。
S105、代理服务器从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中。
S106、目标消息服务器向第二终端设备发送第三消息。
其中,所述第三消息中包括所述令牌。
S107、第二终端设备根据所述令牌获取所述第一消息。
具体的,第一终端设备获得开放服务器发送的token后,根据该token向代理服务器发送第二消息,该第二消息包括token。例如,第二消息为:{"req_type":"set_messgae","token":"T1"}。
代理服务器接收到第二消息后,从即时通讯***中的N个消息服务器中为该第一终端设备确定一个消息服务器作为目标消息服务器。
接着,代理服务器将第二消息保存至目标消息服务器对应的消息队列中,第二消息包括所述令牌。在一种示例中,代理服务器将第二消息直接保存在目标消息服务器对应的消息队列中。在另一种示例中,代理服务器对第二消息进行预处理,例如,群聊消息拆发、公众号消息拆发、消息日志存储等,将预处理后的第二消息保存在目标消息服务器对应的消息队列中。
当目标消息服务器检查到第二终端设备在线时,向第二终端设备发送携带该第一终端的token的第三消息。该第三消息用于指示第二终端设备token对应的第一终端设备向其发送了消息。例如,第三消息为:{"req_type":"get_messgae","token":"T1"}。
第二终端设备接收到该第三消息后,根据该第三消息中携带的token,从存储服务器中获取该token对应的第一消息。
可选的,第二终端设备与存储服务器连接,可以直接从存储服务器中获取该token对应的第一消息。
可选的,第二终端设备通过向开放服务器从存储服务器中获取第一消息。
本实施例的方法,当第二终端设备离线或即时通讯***拥堵等情况时,第一终端设备先将第一消息通过开发服务器保存在存储服务器中。目标消息服务器在第二终端设备在线或即时通讯***空闲时,告知第二终端设备有其他终端设备向第二终端设备发送消息,以使第二终端设备及时拉去第一消息,进而保证了第一消息的准确、完整传输。
可选的,所述第二消息和所述第三消息中的至少一种为TCP消息。
可选的,所述第一消息为Http消息或RPC消息。
本申请实施例提供的及时通讯方法,通过开放服务器接收第一终端设备发送的第一消息,并生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器,并将所述令牌发送给所述第一终端设备;所述代理服务器接收所述第一终端设备根据所述令牌发送的第二消息,并从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;所述目标消息服务器向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌获取所述第一消息。这样使得消息服务器可以根据业务规模自由进行横向扩展,不再受单机CPU及内存等约束,能够支撑海量长连接接入,具有很强的伸缩性,具备非常好的鲁棒性。同时,本申请实施例采用TCP协议结合Http协议和/或RPC协议来简化通讯模型,提升传输稳定性和可靠性。
图3为本实施例二提供的即时通讯方法的流程示意图,图4为本实施例二涉及的即时通讯***的结构示意图。如图3和图4所示,本实施例涉及的是当kafka包括共用消息队列,上述S105中代理服务器将所述第二消息保存至所述目标消息服务器对应的消息队列中的具体过程。
S201、代理服务器将第二消息发送给目标消息服务器。
S202、目标消息服务器将第二消息保存至所述共用消息队列中。
S203、存储服务器从所述共用消息队列中消费第二消息,并对所述第二消进行预处理,将预处理后的第二消息保存至所述目标消息服务器对应的消息队列中。
如图4所示,本实施例的kafka还包括共用消息队列,例如MQ Kafka Topic,在实际使用时,各消息服务器接收到用户的长连接消息(例如TCP消息)后,不会立即保存在各自对应的消息队列中,而是先将该长连接消息写入MQ Kafka Topic。这样,存储服务器会从MQKafka Topic中消费该长连接消息,并且将该长连接消息进行一些逻辑处理,例如:入库Hbase、群聊消息拆发、公众号消息拆发、消息日志存储等,最后将处理后的长连接消息保存至对应的消息队列中。
具体是,代理服务器将第二消息发送给目标消息服务器后,目标消息服务器不是将该第二消息直接保存到对应的消息队列中,而是将第二消息保存到MQ Kafka Topic。接着,存储服务器从MQ Kafka Topic中消费该第二消息,并对该第二消息进行预处理,例如群聊消息拆发、公众号消息拆发、消息日志存储等。最后,存储服务器将预处理后的第二消息保存到目标消息服务器对应的消息队列中。
可选的,本实施例的即时通讯***还包括Redis,该Redis可以保存有消息服务器对应的消息队列与发送给消息服务器的消息之间的映射关系。例如,目标消息服务器对应消息队列1,发送给目标消息服务器的消息为第二消息1,这样Redis可以保存第二消息1与消息队列1之间的映射关系。此时,上述存储服务器对第二消息1进行处理之后,从Redis中获得第二消息1对应的消息队列1,并将该第二消息1保存在消息队列1中。
本申请实施例提供的即时通讯方法,将消息处理逻辑移至存储服务器上,减轻消息服务器的压力,同时如果存储服务器的消费能力不足,可以加存储服务器实现存储服务的扩展。
图5为本实施例三提供的即时通讯方法的流程示意图,在上述实施例的基础上,如图5所示,本实施例的即时通讯方法可以包括:
S301、第一终端设备向开放服务器发送第一消息。
S302、开放服务器根据第一消息,生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器。
S303、开放服务器将所述令牌发送给所述第一终端设备。
S304、第一终端设备根据所述令牌向代理服务器发送第二消息。
S305、代理服务器从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中。
S306、目标消息服务器向第二终端设备发送第三消息。
上述S301至S306的具体过程与上述实施例相同,参照上述实施例几块,在此不再赘述。
S307、第二终端设备向开放服务器发送第四消息。
其中,所述第四消息包括所述令牌。
S308、开放服务器从所述存储服务器中获取所述令牌对应的所述第一消息。
S309、开放服务器将所述第一消息发送给所述第二终端设备。
上述S307至S309为上述S107的具体过程。
具体的,第二终端设备接收到目标消息服务器发送的第三消息后,得知有其他终端设备向其发送消息,因此,第二终端设备向开放服务器发送第四消息,例如,第四消息为:{"req_type":"get_messgae","token":"T1"}。开放服务器接着到第四消息后,根据第四消息中的令牌,从所述存储服务器中获取所述令牌对应的所述第一消息。最后,将该第一消息发送给第二终端设备。例如,开放服务器向第二终端设备返回的消息为:{"to":"第二终端设备@im-xx.xx.com/app","id":"98ef99199928","body":{"content":"文本"},"node":"message","created":"1505204095053","device":"app","from":"第一终端设备@im-xx.xx.com/app","group":"point"}。这样,保证了第二终端设备及时从及时通讯***中的获取第一消息。
S310、第二终端设备向开放服务器发送第五消息。
其中,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息。
S311、开放服务器根据所述第五消息将所述第一消息标记为已读。
S312、开放服务器向所述第二终端设备发送回执消息。
本实施例中,为了保证第二终端设备接收到第一消息,则第二终端设备在接收到第一消息后,向开放服务器发送第五消息,例如,第五消息为:{"req_type":"flush_receipt","token":"T1"}。开放服务器接收到该第五消息后,得知第二终端已经接收到该第一消息,此时,开放服务器将存储服务器中保持的第一消息标记为已读,防止后续在此向第二终端设备推送该第一消息。最后,开放服务器在标记为第一消息为已读后,向第二终端设备发送回执消息,已告知第二终端设备第一消息已经标记为已读。
本实施例中,目标消息服务器向第二终端设备发送的第二消息为TCP消息,而第二终端设备向开发服务器发送的第四消息和第五消息为Http消息或RPC消息。当开发服务器在预设时间内没有接收到第五消息时,开发服务器会重新向第二终端设备发送第二消息,并重新向第二终端设备发送第一消息。这样,通过TCP结合Http协议和/RPC协议保证第一消息的可靠传输和获取,进而大大降低了传统TCP协议的丢包传输的问题。
可选的,所述第四消息和所述第五消息中的至少一种为Http消息或RPC消息。
可选的,本实施例的存储服务器采用Hbase进行消息存储及日志等数据存储,大范围的使用Hbase写操作实现高吞吐。
为了进一步验证本申请实施例的即时通信方法的优点,则使用不同数量的并发用户设备,对本实施例的即时通信***进程测试,其测试结果如图6所示。由图6可知,随着并发用户设备连接数的增加,即时通信***在保证性能的同时,稳定性趋于平稳,没有毛刺的发生。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图7为本实施例一提供的即时通讯***法的结构示意图,如图7所示,该即时通信***100包括:用于代理TCP的代理服务器110、N个消息服务器120、kafka150、存储服务器130和开放服务器140,每个所述消息服务器120对应所述kafka上的一个消息队列。
所述开放服务器140,用于接收第一终端设备发送的第一消息,并生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器130,并将所述令牌发送给所述第一终端设备;
所述代理服务器110,用于接收所述第一终端设备根据所述令牌发送的第二消息,并从所述N个消息服务器120中为所述第一终端设备确定目标消息服务器120,将所述第二消息保存至所述目标消息服务器120对应的消息队列中,所述第二消息包括所述令牌;
所述目标消息服务器120,用于向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌获取所述第一消息。
本申请实施例的即时通信***,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一种可能的实现方式中,上述开放服务器140,具体用于接收所述第二终端设备根据所述令牌发送的第四消息,并根据所述第四消息中包括的所述令牌,从所述存储服务器130中获取所述令牌对应的所述第一消息,将所述第一消息发送给所述第二终端设备。
在一种可能的实现方式中,所述目标消息服务器120,用于接收所述代理服务器110发送的第二消息,将所述第二消息保存至所述共用消息队列中;
所述存储服务器130,用于从所述共用消息队列中消费第二消息,并对所述第二消进行预处理以及将预处理后的第二消息保存至所述目标消息服务器120对应的消息队列中。
在一种可能的实现方式中,所述开放服务器140,还用于接收所述第二终端设备发送的第五消息,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息;并根据所述第五消息将所述第一消息标记为已读,并向所述第二终端设备发送回执消息。
可选的,开放服务器140包括Http和/或RPC接口。
可选的,所述第一消息、所述第四消息、所述第五消息中的至少一种为Http消息或RPC消息。
可选的,所述第二消息和所述第三消息中的至少一种为TCP消息。
可选的,所述存储服务器130采用Hbase存储。
本申请实施例的即时通信***,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本申请实施例提供的终端设备的结构示意图,如图8所示,本实施例的终端设备200可以为上述实施例所述的第一终端设备,该终端设备200包括:
存储器210,用于存储计算机程序;
处理器220,用于执行所述计算机程序;
发送器230,用于向开放服务器发送第一消息,以使所述开放服务器生成所述第一终端设备的令牌,并保存所述第一消息、以及所述第一消息与所述令牌的映射关系至存储服务器;
接收器240,用于接收所述开放服务器发送的所述令牌;
所述发送器230,还用于根据所述令牌向所述代理服务器发送第二消息,以使所述代理服务器从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,并将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌。
本申请实施例的终端设备,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本申请实施例一提供的终端设备的结构示意图,如图9所示,本实施例的终端设备300可以为上述实施例所述的第二终端设备,该终端设备300包括:
存储器310,用于存储计算机程序;
处理器320,用于执行所述计算机程序;
发送器330,用于向目标消息服务器发送第三消息,所述第三消息中包括所述令牌;
处理器320,还用于根据所述令牌获取所述第一消息。
本申请实施例的终端设备,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本申请实施例二提供的终端设备的结构示意图,如图10所示,本实施例的终端设备300还包括接收器340。
上述发送器330,具体用于向所述开放服务器发送第四消息,所述第四消息包括所述令牌;以使所述开放服务器根据所述令牌,从所述存储服务器中获取所述令牌对应的所述第一消息;
所述接收器340,具体用于接收所述开放服务器发送的所述第一消息。
在本实施例的一种可能的实现方式中,上述发送器330,具体用于向所述开放服务器发送第五消息,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息;以使所述开放服务器根据所述第五消息将所述第一消息标记为已读;
所述接收器340,用于接收所述开放服务器发送的回执消息,所述回执消息用于指示所述第一消息标记为已读。
本申请实施例的终端设备,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
所述及时通信方法的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (16)
1.一种即时通讯方法,其特征在于,所述方法应用于即时通讯***,所述即时通讯***包括:用于代理TCP的代理服务器、N个消息服务器、分布式发布订阅消息***kafka、存储服务器和开放服务器,每个所述消息服务器对应所述kafka上的一个消息队列,所述N为正整数;
所述开放服务器接收第一终端设备发送的第一消息,并生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器,并将所述令牌发送给所述第一终端设备;
所述代理服务器接收所述第一终端设备根据所述令牌发送的第二消息,并从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;
所述目标消息服务器向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌从所述存储服务器中获取与所述令牌对应的第一消息。
2.根据权利要求1所述的方法,其特征在于,所述以使所述第二终端设备根据所述令牌获取所述第一消息,包括:
所述开放服务器接收所述第二终端设备根据所述令牌发送的第四消息,并根据所述第四消息中包括的所述令牌,从所述存储服务器中获取所述令牌对应的所述第一消息,将所述第一消息发送给所述第二终端设备。
3.根据权利要求1或2所述的方法,其特征在于,所述kafka包括共用消息队列,所述代理服务器将所述第二消息保存至所述目标消息服务器对应的消息队列中,包括:
所述目标消息服务器接收所述代理服务器发送的第二消息,将所述第二消息保存至所述共用消息队列中;
所述存储服务器从所述共用消息队列中消费第二消息,并对所述第二消进行预处理以及将预处理后的第二消息保存至所述目标消息服务器对应的消息队列中。
4.根据权利要求2所述的方法,其特征在于,所述开放服务器将所述第一消息发送给所述第二终端设备之后,所述方法还包括:
所述开放服务器接收所述第二终端设备发送的第五消息,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息;
所述开放服务器根据所述第五消息将所述第一消息标记为已读,并向所述第二终端设备发送回执消息。
5.根据权利要求1所述的方法,其特征在于,所述开放服务器包括超文本传输协议Http和/或远程过程调用协议RPC接口。
6.根据权利要求1所述的方法,其特征在于,所述第一消息、第四消息、第五消息中的至少一种为Http消息或RPC消息。
7.根据权利要求1所述的方法,其特征在于,所述第二消息和所述第三消息中的至少一种为TCP消息。
8.根据权利要求1所述的方法,其特征在于,所述存储服务器采用Hbase存储。
9.一种即时通讯方法,其特征在于,所述方法应用于第一终端设备,所述方法包括;
向开放服务器发送第一消息,以使所述开放服务器生成所述第一终端设备的令牌,并保存所述第一消息、以及所述第一消息与所述令牌的映射关系至存储服务器;
接收所述开放服务器发送的所述令牌;
根据所述令牌向代理服务器发送第二消息,以使所述代理服务器从N个消息服务器中为所述第一终端设备确定目标消息服务器,并将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;
其中,所述目标消息服务器用于向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌从所述存储服务器中获取与所述令牌对应的第一消息。
10.一种即时通讯方法,其特征在于,所述方法应用于第二终端设备,所述方法包括;
向目标消息服务器发送第三消息,所述第三消息中包括令牌,所述第三消息用于指示所述第二终端设备从存储服务器中获取与所述令牌对应的第一消息;
根据所述令牌获取所述第一消息,所述第一消息用于指示开放服务器生成第一终端设备的令牌,并将所述第一消息以及所述第一消息与所述令牌的映射关系存储至所述存储服务器,并将所述令牌发送给所述第一终端设备;
其中,所述目标消息服务器是代理服务器基于所述第一终端设备根据所述令牌发送的第二消息,从N个消息服务器中为所述第一终端设备确定的,所述代理服务器还用于将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌。
11.根据权利要求10所述的方法,其特征在于,所述第二终端设备根据所述令牌获取所述第一消息,包括:
向所述开放服务器发送第四消息,所述第四消息包括所述令牌;以使所述开放服务器根据所述令牌,从所述存储服务器中获取所述令牌对应的所述第一消息;
接收所述开放服务器发送的所述第一消息。
12.根据权利要求11所述的方法,其特征在于,所述第二终端设备接收所述开放服务器发送的所述第一消息之后,所述方法还包括:
向所述开放服务器发送第五消息,所述第五消息包括所述令牌,所述第五消息用于指示已接收到所述令牌对应的所述第一消息;以使所述开放服务器根据所述第五消息将所述第一消息标记为已读;
接收所述开放服务器发送的回执消息,所述回执消息用于指示所述第一消息标记为已读。
13.一种即时通讯***,其特征在于,包括:用于代理TCP的代理服务器、N个消息服务器、分布式发布订阅消息***kafka、存储服务器和开放服务器,每个所述消息服务器对应所述kafka上的一个消息队列,所述N为正整数;
所述开放服务器,用于接收第一终端设备发送的第一消息,并生成所述第一终端设备的令牌,保存所述第一消息、以及所述第一消息与所述令牌的映射关系至所述存储服务器,并将所述令牌发送给所述第一终端设备;
所述代理服务器,用于接收所述第一终端设备根据所述令牌发送的第二消息,并从所述N个消息服务器中为所述第一终端设备确定目标消息服务器,将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;
所述目标消息服务器,用于向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌从所述存储服务器中获取与所述令牌对应的第一消息。
14.一种终端设备,其特征在于,包括;
发送器,用于向开放服务器发送第一消息,以使所述开放服务器生成第一终端设备的令牌,并保存所述第一消息、以及所述第一消息与所述令牌的映射关系至存储服务器;
接收器,用于接收所述开放服务器发送的所述令牌;
所述发送器,还用于根据所述令牌向代理服务器发送第二消息,以使所述代理服务器从N个消息服务器中为所述第一终端设备确定目标消息服务器,并将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌;
其中,所述目标消息服务器用于向第二终端设备发送第三消息,所述第三消息中包括所述令牌;以使所述第二终端设备根据所述令牌从所述存储服务器中获取与所述令牌对应的第一消息。
15.一种终端设备,其特征在于,包括;
发送器,用于向目标消息服务器发送第三消息,所述第三消息中包括令牌,所述第三消息用于指示第二终端设备从存储服务器中获取与所述令牌对应的第一消息;
处理器,用于根据所述令牌获取所述第一消息,所述第一消息用于指示开放服务器生成第一终端设备的令牌,并将所述第一消息以及所述第一消息与所述令牌的映射关系存储至所述存储服务器,并将所述令牌发送给所述第一终端设备;
其中,所述目标消息服务器是代理服务器基于所述第一终端设备根据所述令牌发送的第二消息,从N个消息服务器中为所述第一终端设备确定的,所述代理服务器还用于将所述第二消息保存至所述目标消息服务器对应的消息队列中,所述第二消息包括所述令牌。
16.一种计算机存储介质,其特征在于,所述存储介质中存储计算机程序,所述计算机程序在执行时实现如权利要求1-8中任一项所述的即时通讯方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811533331.6A CN111327511B (zh) | 2018-12-14 | 2018-12-14 | 即时通讯方法、***、终端设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811533331.6A CN111327511B (zh) | 2018-12-14 | 2018-12-14 | 即时通讯方法、***、终端设备与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327511A CN111327511A (zh) | 2020-06-23 |
CN111327511B true CN111327511B (zh) | 2022-04-12 |
Family
ID=71171080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811533331.6A Active CN111327511B (zh) | 2018-12-14 | 2018-12-14 | 即时通讯方法、***、终端设备与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111327511B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225715B (zh) * | 2022-06-30 | 2024-01-26 | 深圳市云洲创新科技有限公司 | 一种数据交互方法及数据交互*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014035194A1 (en) * | 2012-08-30 | 2014-03-06 | Samsung Electronics Co., Ltd. | Push message service system and method |
WO2014165152A1 (en) * | 2013-03-12 | 2014-10-09 | Burnett J Stephen | Electronic message aggregation and sharing system and apparatus |
CN104584489A (zh) * | 2012-08-30 | 2015-04-29 | 三星电子株式会社 | 推送消息服务***和方法 |
CN105721274A (zh) * | 2014-12-03 | 2016-06-29 | ***通信集团公司 | 一种多种即时通讯的融合方法及装置 |
WO2016156256A1 (en) * | 2015-03-30 | 2016-10-06 | British Telecommunications Public Limited Company | Data communications |
CN106201705A (zh) * | 2016-07-25 | 2016-12-07 | 东软集团股份有限公司 | 处理消息的方法及装置 |
CN106911544A (zh) * | 2017-01-20 | 2017-06-30 | 深圳市沃特玛电池有限公司 | 通讯***及通讯方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558048B2 (en) * | 2011-09-30 | 2017-01-31 | Oracle International Corporation | System and method for managing message queues for multinode applications in a transactional middleware machine environment |
-
2018
- 2018-12-14 CN CN201811533331.6A patent/CN111327511B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014035194A1 (en) * | 2012-08-30 | 2014-03-06 | Samsung Electronics Co., Ltd. | Push message service system and method |
CN104584489A (zh) * | 2012-08-30 | 2015-04-29 | 三星电子株式会社 | 推送消息服务***和方法 |
WO2014165152A1 (en) * | 2013-03-12 | 2014-10-09 | Burnett J Stephen | Electronic message aggregation and sharing system and apparatus |
CN105721274A (zh) * | 2014-12-03 | 2016-06-29 | ***通信集团公司 | 一种多种即时通讯的融合方法及装置 |
WO2016156256A1 (en) * | 2015-03-30 | 2016-10-06 | British Telecommunications Public Limited Company | Data communications |
CN106201705A (zh) * | 2016-07-25 | 2016-12-07 | 东软集团股份有限公司 | 处理消息的方法及装置 |
CN106911544A (zh) * | 2017-01-20 | 2017-06-30 | 深圳市沃特玛电池有限公司 | 通讯***及通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111327511A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108833950B (zh) | 一种弹幕消息下发方法、服务器、***和存储介质 | |
KR102277186B1 (ko) | 애플리케이션 서비스 아바타를 통한 애플리케이션 서비스 전달 | |
CN111008075B (zh) | 一种负载均衡***、方法、装置、设备及介质 | |
CN115004673B (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
US10623450B2 (en) | Access to data on a remote device | |
Sharvari et al. | A study on modern messaging systems-kafka, rabbitmq and nats streaming | |
CN112527530B (zh) | 消息处理方法、装置、设备、存储介质及计算机程序产品 | |
CN101977361A (zh) | 一种批量短信预处理方法 | |
CN116303608A (zh) | 一种应用服务的数据处理方法和装置 | |
CN108989404B (zh) | 一种弹幕消息下发方法、服务器、***和存储介质 | |
CN110798495B (zh) | 用于在集群架构模式下端到端的消息推送的方法和服务器 | |
CN111327511B (zh) | 即时通讯方法、***、终端设备与存储介质 | |
US20150249625A1 (en) | Using analytics to optimize performance of a messaging system via topic migration to alternate delivery methods | |
US8949344B2 (en) | Asynchronous queued messaging for web applications | |
CN107342929A (zh) | 一种新消息通知的发送方法、装置及*** | |
US20090282367A1 (en) | Method and system for electronic communication management | |
US20100274840A1 (en) | Cooperation apparatus using peer-to-peer and method thereof | |
CN117014422A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN115134274A (zh) | 网络测速方法、装置、电子设备及存储介质 | |
KR102005932B1 (ko) | 소셜 네트워크 친구 관리 서버 및 이를 이용한 소셜 네트워크 친구 관리 방법 | |
CN106899652A (zh) | 一种推送业务处理结果的方法及装置 | |
CN108471375B (zh) | 一种消息处理方法、装置及终端 | |
CN112152915A (zh) | 消息转发网关***和消息转发方法 | |
KR102367017B1 (ko) | 통신 네트워크 시스템 및 그것의 제어방법 | |
WO2017071531A1 (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 |