CN115002057A - 一种分布式多服务端即时通信方法 - Google Patents
一种分布式多服务端即时通信方法 Download PDFInfo
- Publication number
- CN115002057A CN115002057A CN202210583114.8A CN202210583114A CN115002057A CN 115002057 A CN115002057 A CN 115002057A CN 202210583114 A CN202210583114 A CN 202210583114A CN 115002057 A CN115002057 A CN 115002057A
- Authority
- CN
- China
- Prior art keywords
- session
- server
- client
- message
- sends
- 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 36
- 230000006854 communication Effects 0.000 claims abstract description 126
- 238000004891 communication Methods 0.000 claims abstract description 109
- 238000013475 authorization Methods 0.000 claims description 21
- 238000012360 testing method Methods 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 14
- 230000001934 delay Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000977 initiatory effect Effects 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]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种分布式多服务端即时通信方法,其方法包括邀请客户端请求连接会话服务端;会话服务端请求第一宿主服务端认证用户,认证通过则建立与邀请客户端的连接;邀请客户端将获取到的通信信息发送至会话服务端;会话服务端接收通信信息,并保存通信信息;以及会话服务端发送新消息通知至第二宿主服务端;第二宿主服务端将新消息通知发送至被邀请客户端;被邀请客户端请求连接会话服务端;会话服务端请求第二宿主服务端认证用户,并在认证通过后建立与被邀请客户端的连接;被邀请客户端获取会话服务端保存的邀请客户端发送的通信消息。本申请具有实现不同即时通信服务系统用户互通,提升用户使用体验感的效果。
Description
技术领域
本发明涉及远程通信技术领域,尤其是涉及一种分布式多服务端即时通信方法。
背景技术
即时通信指能够即时发送和接收互联网消息等的业务,便于使人与人之间通过文字、语音或视频通话的方式进行远程沟通,为人们的生活和工作带来极大便利。
现有的具有代表性的即时通信的工具例如微信或阿里钉钉,均由不同的公司运营。在不同公司的运营下,即时通信工具所使用的平台亦不同。
针对上述中的现有技术,发明人认为不同的即时通信工具所使用的平台不同,会造成平台与平台之间的数据无法互通,从而使用户在更换即时通信工具后,丢失之前所使用的即时通信工具内存储的用户信息,例如用户身份和通讯录等,使用户需重新填写相关用户信息以重新完成注册,影响用户的使用体验感。
发明内容
为了实现不同即时通信服务系统用户互通,提升用户使用体验感,本发明提供一种分布式多服务端即时通信方法。
本申请提供的一种分布式多服务端即时通信方法采用如下的技术方案:
一种分布式多服务端即时通信方法,包括:
邀请客户端请求连接会话服务端;
所述会话服务端请求第一宿主服务端认证用户,认证通过则建立与所述邀请客户端的连接;其中所述第一宿主服务端与所述邀请客户端对应;
所述邀请客户端将获取到的通信信息发送至会话服务端;
所述会话服务端接收所述通信信息,并保存所述通信信息;以及
所述会话服务端发送新消息通知至第二宿主服务端;第二宿主服务端将所述新消息通知发送至被邀请客户端;其中所述第二宿主服务端与所述被邀请客户端对应;
所述被邀请客户端请求连接所述会话服务端;
所述会话服务端请求所述第二宿主服务端认证用户,并在认证通过后建立与所述被邀请客户端的连接;
所述被邀请客户端获取所述会话服务端保存的所述邀请客户端发送的通信消息。
通过采用上述技术方案,会话服务端的作用用于转发邀请客户端转发至被邀请客户端的通信信息,即首先邀请客户端将通信信息发送至会话服务端,后会话服务端接收通信信息,并保存通信信息,会话服务端发送新消息通知至第二宿主服务端;第二宿主服务端将新消息通知发送至被邀请客户端,被邀请客户端获取会话服务端保存的邀请客户端发送的通信消息;
通过会话服务端实现邀请客户端与被邀请客户端之间的通信,在客户注册到不同服务端后,由于会话服务端不变,即可实现与不同服务端对应的不同客户端之间通过会话服务端进行相互通信的效果,使用户在不同服务端之间进行迁移时,无需重新填写相关用户信息,且数据不会丢失,进而提升用户的使用体验感。
可选的,在所述邀请客户端请求连接会话服务端的步骤之前,包括:
所述会话服务端上的注册用户账号创建消息会话;其中所述注册用户账号为注册到所述会话服务端上的用户账号;
所述会话服务端将创建所述消息会话的所述注册用户账号作为主持用户账号;其中所述会话主持用户账号与所述第一用户账号和所述第二用户账号均为好友关系;
所述邀请账号将所述第一用户账号、第二用户账号或其他用户账号作为会话成员添加到所述消息会话中;
所述会话成员将另外一个账号添加至所述消息会话中。
通过采用上述技术方案,邀请客户端首先注册至会话服务端才可通过会话服务端进行信息传输;同理,被邀请客户端首先注册至会话服务端才可通过会话服务端进行信息传输;第一用户账号与邀请客户端对应,第二用户账号与被邀请客户端对应,邀请账号为创建消息会话的注册用户账号;
邀请客户端可与被邀请客户端之间基于会话服务端进行通信传输。
邀请客户端发送至被邀请客户端的通信信息通过会话服务端进行传输,当服务端不同时,会话服务端起到转发通信信息的作用,故可实现与不同服务端对应的不同客户端之间通过会话服务端进行相互通信的效果,提升用户使用体验感。
2. 可选的,将所述第一用户账号、所述第二用户账号和所述其他用户账号作为被邀请账号;
所述邀请账号将所述被邀请账号作为会话成员添加到所述消息会话中的步骤包括:
所述会话服务端判断是否收到所述邀请客户端对应的第一用户发送的第二用户账号;
若收到,所述会话服务端验证所述邀请客户端对应的所述第一用户账号,并在验证通过后,发送会话信息至所述第二宿主服务端;
所述第二宿主服务端将所述会话信息发送至所述被邀请客户端,并判断所述被邀请客户端对应的第二用户是否确认加入;
若确认加入,与所述第二用户对应的第二宿主服务端通知所述会话服务端,并为所述第二用户添加会话信息;
所述会话服务端在所述消息会话中添加确认加入所述消息会话的其他用户。
通过采用上述技术方案,邀请账号将第一用户账号或第二用户账号或其他用户账号作为会话成员添加到消息会话中用于使邀请客户端与被邀请客户端之间进行通信,消息会话用于为邀请客户端和被邀请客户端提供信息传输空间,即邀请客户端首先需与被邀请客户端位于同一消息会话内,即可进行信息传输。
可选的,所述会话服务端请求第一宿主服务端认证用户,认证通过则建立与所述邀请客户端的连接的步骤包括:
所述邀请客户端登录所述第一宿主服务端,并向所述会话服务端建立连接请求;
所述会话服务端接收到所述连接请求后,发送一次性认证码至所述邀请客户端;
所述邀请客户端将所述一次性认证码发送至所述第一宿主服务端;
所述第一宿主服务端验证所述一次性认证码,并验证第一客户的身份,在验证通过后生成授权码发送至所述邀请客户端;其中,所述授权码包括用户账号信息;
所述邀请客户端将所述授权码发送至所述会话服务端;
所述会话服务端验证所述授权码,并在验证通过后建立与所述邀请客户端的通信连接。
通过采用上述技术方案,会话服务端将一次性认证码发送至邀请客户端,邀请客户端将一次性认证码发送至第一宿主服务端进行验证,第一宿主服务端验证通过即生成授权码发送至邀请客户端,邀请客户端将授权码发送至会话服务端进行验证,验证通过即建立会话服务端与邀请客户端的通信连接。此过程有利于提升会话服务端与邀请客户端之间通信的安全性。
可选的,所述消息会话内的实时通信流程,包括:
所述邀请客户端与所述会话服务端建立连接;
所述邀请客户端向所述会话服务端发送会话消息;
所述会话服务端在所述通信会话中保存所述会话消息,以及向所述通信会话中的与所有会话成员一一对应的宿主服务端发送新消息通知;其中一个宿主服务端与一个或多个所述客户端对应;
所有所述宿主服务端转发所述新消息通知至与所述宿主服务端对应的所述客户端;或所述客户端连接所述宿主服务端获取所述新消息通知,所述客户端连接到所述会话服务端获取所述会话消息。
通过采用上述技术方案,此流程为按会话集中模式消息通信流程,按会话集中模式消息通信流程即将客户端发送的消息存储于会话服务端上,通信会话内的客户端通过直接连接的方式连接至会话服务端上用于获取所述会话消息。
可选的,所述消息会话内的实时通信流程,还包括:
所述邀请客户端发送所述会话消息至所述会话服务端;
所述会话服务端将所述会话消息转发至所述通信会话中的与所有所述客户端对应的所述宿主服务端;
所述宿主服务端保存所述会话消息,并向与所述宿主服务端对应的若干所述客户端发送所述新消息通知,所述客户端连接到所述宿主服务端获取会话消息。
通过采用上述技术方案,此流程为分发到服务端模式消息通信流程,分发到服务端模式消息通信流程即将客户端发送的会话消息发送至通信会话的每个客户端对应的宿主服务端上,客户端与客户端对应的宿主服务端连接即可读取会话消息。
可选的,所述消息会话内的实时通信流程,还包括:
所述邀请客户端向所述会话服务端发送所述会话消息;
所述会话服务端将所述会话消息转发至所述通信会话内的若干所述客户端;
若干所述客户端将所述会话消息转发至与若干所述客户端一一对应的所述宿主服务端;
所述会话服务端将所述会话消息转发至与所述会话服务端对应的若干所述客户端。
通过采用上述技术方案,此流程为分发到客户端模式消息通信流程,分发到客户端模式消息通信流程即会话服务端将客户端发送的会话消息发送至通信会话内的所有客户端,即客户端需向一个通信会话发送消息时,需首先连接会话服务端,将会话消息发送至会话服务端,后由会话服务端将会话消息转发至通信会话内的所有客户端。
可选的,所述消息会话内的实时通信流程,还包括:
所述会话服务端与所述参与客户端建立全连接虚拟点到点网络;
基于所述虚拟点到点网络,所述邀请客户端与所述会话服务端进行实时通信。
通过采用上述技术方案,实时通信基于点对点网络实现,所有客户端和会话服务端均作为节点包含在虚拟点到点网络上。实时通信使节点之间的通信具有实时性,进一步增加用户使用体验感。
可选的,所述会话服务端与所述参与客户端建立全连接虚拟点到点网络的步骤包括的步骤包括:
以所述会话服务端、转发服务端和所有所述参与客户端作为节点构成全连接虚拟点到点网络。所述转发服务端是所述服务端为优化网络流量设置的一个或多个镜像节点;
所述会话服务端获取若干所述实时会话内所有所述虚拟点对点网络节点的网络定位信息;其中所述网络定位信息包括网络地址和端口号;
所述会话服务端基于所述网络定位信息与实时会话内的所有所述虚拟点对点网络节点进行通信,并将所述网络定位信息发送至实时会话内的所有所述虚拟点对点网络节点;
每个实时会话内的所述虚拟点对点网络节点接收到所述网络定位信息后,发送测试报文至其余所述虚拟点对点网络节点;
所述会话服务端基于所述测试报文获取若干在所述实时会话内的所述虚拟点对点网络节点的响应延迟,所述响应延迟等于每个所述虚拟点对点网络节点向其余所述虚拟点对点网络节点发送测试报文并被接收的时间与预设的接收时间之差;
所述会话服务端基于若干所述响应延迟生成转发路由表;
所述会话服务端基于所述转发路由表确定发送实时通信数据的虚拟点到点网络的下一跳节点,再通过所述下一跳节点发送实时通信数据至其余所述虚拟点对点网络节点。
通过采用上述技术方案,实时通信基于点对点网络实现,即实时会话内的全部客户端均作为点对点网络中的节点,进行相互通信,实时通信使用点对点网络,便于提升不同客户端之间进行通信的数据传输速度,降低信息传输延时概率。
综上所述,本申请具有以下至少一种有益技术效果:
1.在客户注册到不同服务端后,由于会话服务端不变,即可实现与不同服务端对应的不同客户端之间通过会话服务端进行相互通信的效果,有利于提升用户的使用体验感。
2.实时通信基于点对点网络实现,所有客户端和会话服务端均作为节点包含在虚拟点到点网络上。实时通信使节点之间的通信具有实时性,进一步增加用户使用体验感。
附图说明
图1是本申请实施例一种分布式多服务端即时通信方法的整体流程图。
图2是本申请实施例一种分布式多服务端即时通信方法中在邀请客户端请求连接会话服务端的步骤之前的流程图。
图3是本申请实施例一种分布式多服务端即时通信方法中会话服务端请求第一宿主服务端认证用户,认证通过则建立与邀请客户端的连接的流程图。
具体实施方式
本申请实施例公开一种分布式多服务端即时通信方法。
参照图1,一种分布式多服务端即时通信方法包括:
S100、邀请客户端请求连接会话服务端。
客户端为运行于用户智能终端上的应用程序,例如运行在电脑、手机或平板上的APP,用于为用户展示好友列表,并向指定的好友用户发起即时通信。具体的,即时通信的形式可以为文字、语音或视频通话等。
服务端为运行有若干软件的计算机系统,用于存储若干注册用户的用户信息、管理若干注册用户的好友信息和为若干用户之间的通信提供消息转发和连接管理等。
参照图2,在邀请客户端请求连接会话服务端的步骤之前,包括:
S1、会话服务端上的注册用户账号创建消息会话;其中注册用户账号为注册到会话服务端上的用户账号。
客户端通过注册到服务端以获得即时通信服务,在注册完成时,该服务端即成为客户端的宿主服务端。注册为用户人为发起的注册动作。邀请客户端首先对要注册的第一宿主服务端进行选择,选定第一宿主服务端后,即开始进行注册。
消息会话用于为消息会话内的成员提供通信空间。具体的,消息会话内的成员为若干客户端对应的用户账号。
S2、会话服务端将创建消息会话的注册用户账号作为主持用户账号。
在第一宿主服务端接收到注册信号时,第一宿主服务端即向邀请客户端分配第一用户账号;同理在第二宿主服务端接收到注册信号时,第二宿主服务端即向被邀请客户端分配第二用户账号;在会话服务端接受到注册信号时,会话服务端即向会话服务端对应的客户端分配主持用户账号,本实施例中会话主持用户账号与第一用户账号和第二用户账号可为好友关系亦可为非好友关系。
本实施例中,好友关系通过跨服务端添加好友流程形成,以邀请客户端与被邀请客户端为好友关系为例:即邀请客户端将与被邀请客户端对应的第二用户账号发送至第一宿主服务端,第一宿主服务端将邀请客户端的第一用户账号发送至第二宿主服务端,第二宿主服务端发送好友申请信息至被邀请客户端,用户通过被邀请客户端验证好友申请信息,若验证通过,被邀请客户端发送申请接受信息至第二宿主服务端,若第二宿主服务端对应的用户接受了好友申请,第二宿主服务端即将与邀请客户端对应的第一用户账号添加至被邀请客户端的第二好友列表中,同时第一宿主服务端将第二用户账号添加至邀请客户端的好友列表中。
S3、邀请账号将第一用户账号、第二用户账号或其他用户账号作为会话成员添加到消息会话中。
具体的,将第一用户账号、第二用户账号和其他用户账号作为被邀请账号;
邀请账号将被邀请账号作为会话成员添加到消息会话中的步骤包括:
S31、会话服务端判断是否收到邀请客户端对应的第一用户发送的第二用户账号。
S32、若收到,会话服务端验证邀请客户端对应的第一用户账号,并在验证通过后,发送会话信息至第二宿主服务端。
S33、第二宿主服务端将会话信息发送至被邀请客户端,并判断被邀请客户端对应的第二用户是否确认加入。
本实施例中,第二宿主服务端通过判断是否存在加入信号,进而判断被邀请客户端对应的第二用户是否确认加入。具体的,
加入信号指被邀请客户端在接收到会话信息后,基于用户通过点击被邀请客户端显示屏上的信息确定是否加入通信会话的动作产生的信号。
若被邀请客户端接收到加入信号,第二宿主服务端即通知会话服务端,具体的,第二宿主服务端与会话服务端之间通信连接,第二宿主服务端当接收到加入信号时,即将加入信号传输至会话服务端。
若第二宿主服务端未接收到加入信号,则第二宿主服务端无动作。
S34、若确认加入,与第二用户对应的第二宿主服务端通知会话服务端,并为第二用户添加会话信息。
具体的,会话服务端添加会话信息指在被邀请客户端加入至消息会话后,将会话信息中的通信会话人数增加1,并将与被邀请客户端对应的第二用户账号展示在通信空间内。
S35、会话服务端在消息会话中添加确认加入消息会话的其他用户。
参照图2,S4、会话成员将另外一个账号添加至消息会话中。
参照图1,S200、会话服务端请求第一宿主服务端认证用户,认证通过则建立与邀请客户端的连接;其中第一宿主服务端与邀请客户端对应。
在本实施例中,第一宿主服务端与第二宿主服务端仅为名称上的差异,且第一宿主服务端与第二宿主服务端均可作为会话服务端进行中间通信。
具体的,参照图3,会话服务端请求第一宿主服务端认证用户,认证通过则建立与邀请客户端的连接的步骤包括:
S210、邀请客户端登录第一宿主服务端,并向会话服务端建立连接请求。
S220、会话服务端接收到连接请求后,发送一次性认证码至邀请客户端。
一次性认证码为一种人机识别手段,用于使第一宿主服务端区分人和机器的操作。在另一实施例中,一次性认证码可直接发送至第一宿主服务端,若当一次性认证码直接发送至第一宿主服务端时,则不执行步骤S230至步骤S260。
S230、邀请客户端将一次性认证码发送至第一宿主服务端。
S240、第一宿主服务端验证一次性认证码,并验证第一客户的身份,在验证通过后生成授权码发送至邀请客户端;其中,授权码包括用户账号信息。
本实施例中第一宿主服务端验证一次性认证码为确定第一客户是否为会话服务端的会话成员。若第一客户不是会话服务端的会话成员,则不通过验证。
S250、邀请客户端将授权码发送至会话服务端。
S260、会话服务端验证授权码,并在验证通过后建立与邀请客户端的通信连接。
会话服务端验证授权码通过后,则建立与邀请客户端的连接。本实施例中会话服务端将连接与用户账号相关联,用于使用户通过连接即可访问会话服务端上的用户账号参与的通信会话。
具体的,消息会话内的实时通信流程,包括:
S200a、邀请客户端与会话服务端建立连接;
S200b、邀请客户端向会话服务端发送会话消息;
具体的,会话消息的形式可以为文字、图片、语音或视频。
S200c、会话服务端在通信会话中保存会话消息,以及向通信会话中的与所有会话成员一一对应的宿主服务端发送新消息通知;其中一个宿主服务端与一个或多个客户端对应;
S200d、所有宿主服务端转发新消息通知至与宿主服务端对应的客户端;或客户端连接宿主服务端获取新消息通知,客户端连接到会话服务端获取会话消息。
步骤S200a-步骤S200d为按会话集中模式消息通信流程,按会话集中模式消息通信即把用户通过客户端发送的会话消息存储于会话服务端上,客户端通过虚拟连接或直接连接的方式连接至会话服务端上获取会话消息。本实施例中,按会话集中模式只保存一份通信记录,且允许长期保存会话消息记录和允许加入后的成员查看加入前的消息,有效节省了存储空间。在另一实施例中,按会话集中模式还可对历史的会话消息进行修改。
消息会话内的实时通信流程,还包括:
S201a、邀请客户端发送会话消息至会话服务端;
S201b、会话服务端将会话消息转发至通信会话中的与所有客户端对应的宿主服务端;
S201c、宿主服务端保存会话消息,并向与宿主服务端对应的若干客户端发送新消息通知,客户端连接到宿主服务端获取会话消息。
步骤S201a-步骤S201c为分发到服务端模式消息通信流程,具体的,分发到服务端模式消息通信指把用户通过客户端发送的新消息通知发送至通信会话中的每个客户端对应的宿主服务端上,用户通过客户端登录到宿主服务端即可获取新消息通知。
消息会话内的实时通信流程,还包括:
S202a、邀请客户端向会话服务端发送会话消息;
S202b、会话服务端将会话消息转发至通信会话内的若干客户端;
S202c、若干客户端将会话消息转发至与若干客户端一一对应的宿主服务端;
S202d、会话服务端将会话消息转发至与会话服务端对应的若干客户端。
分发到客户端模式消息通信指用户通过客户端发送的会话消息直接发送到通信会话内的每个客户端,由客户端保存会话消息。具体的,用户需通过客户端向一个通信会话发送会话消息时,需首先连接会话服务端,将会话消息发送至会话服务端。会话服务端将会话消息发送至通信会话内的所有宿主服务端,宿主服务端将会话消息转发至与本身对应的客户端上。
本实施例中,分发到客户端模式消息通信流程中,会话消息均保存于客户端,便于用户管理客户端中的会话消息;在另一实施例中,分发到客户端模式消息通信可在会话消息转发的过程中对会话消息内容加密,从而有利于安全通信。
消息会话内的通信流程,还包括:
S203a、会话服务端与参与客户端建立全连接虚拟点到点网络;
虚拟点到点网络在通信会话建立时建立。
S203b、基于虚拟点到点网络,邀请客户端与会话服务端进行实时通信。
实时通信通过实时会话进行。实时通信需首先建立一个虚拟的点对点网络,使所有客户端和宿主服务端均在点对点网络上作为节点。具体的,点对点网络(peer-to-peer,简称P2P),指无中心服务器、依靠用户群交换信息的互联网体系。与具有服务端的中央网络系统不同,点对点网络中的每个客户端既是一个节点,也具备服务器的功能。
具体的,会话服务端与参与客户端建立全连接虚拟点到点网络的步骤包括:
S204a、以会话服务端、转发服务端和所有参与客户端作为节点构成全连接虚拟点到点网络。转发服务端是服务端为优化网络流量设置的一个或多个镜像节点。
S204b、会话服务端获取若干实时会话内所有虚拟点对点网络节点的网络定位信息;其中网络定位信息包括网络地址和端口号。
本实施例中,网络定位信息包括网络地址和端口号,用于使实时会话内的每一个节点基于网络地址和端口号和其他节点进行实时通信。具体的,节点指实时会话内的所有客户端和宿主服务端。
S204c、会话服务端基于网络定位信息与实时会话内的所有客户端进行实时通信,并将网络定位信息发送至实时会话内的所有参与客户端;
S204d、每个实时会话内的虚拟点对点网络节点接收到网络定位信息后,发送测试报文至其余虚拟点对点网络节点。
测试报文指宿主服务端用于获取若干客户端的响应延迟的数据信息。
S204e、会话服务端基于测试报文获取若干在实时会话内的虚拟点对点网络节点的响应延迟,响应延迟等于每个虚拟点对点网络节点向其余虚拟点对点网络节点发送测试报文并被接收的时间与预设的接收时间之差。
预设的接收时间为理想状态下宿主服务端向实时会话内的客户端发送实时通信数据并被实时会话内的客户端接收所用的时间,接收时间为人为设定。
宿主服务端首先发送测试报文至实时会话内的客户端,并从发送时刻起开始计时至每个客户端接收测试报文计时结束,宿主服务端计算每个客户端向其余客户端发送测试报文并被接收的时间,并将响应延迟等于每个客户端向其余客户端发送测试报文并被接收的时间与预设的接收时间相减即得到响应延迟。
S204f、会话服务端基于若干响应延迟生成转发路由表;
转发路由表内包括实时会话内的所有响应延迟。
S204g、会话服务端基于转发路由表确定发送实时通信数据的虚拟点到点网络的下一跳节点,再通过下一跳节点发送实时通信数据至其余虚拟点对点网络节点;
具体实施中,宿主服务端将发送实时通信数据的顺序与转发路由表内的响应延迟的时长顺序相反,即响应延迟越高,宿主服务端发送实时通信数据的顺序越靠前。
S204h、若干参与客户端接收到实时通信数据后,将实时通信数据转发至目标客户端。
参照图1,S300、邀请客户端将获取到的通信信息发送至会话服务端。
S400、会话服务端接收通信信息,并保存通信信息。
S500、会话服务端发送新消息通知至第二宿主服务端;第二宿主服务端将新消息通知发送至被邀请客户端;其中第二宿主服务端与被邀请客户端对应。
参照图1,S600、被邀请客户端请求连接会话服务端。
通信信息即邀请客户端在通信会话中发出的信息,具体的通信信息可以为文字、语音、图片或视频等。
S700、会话服务端请求第二宿主服务端认证用户,并在认证通过后建立与被邀请客户端的连接。
邀请服务端与会话服务端连接的方式有利于减少消息转发环节。
S800、被邀请客户端获取会话服务端保存的邀请客户端发送的通信消息。
需要说明的是,会话服务端、第一宿主服务端和第二宿主服务端仅为名称上的差别,即会话服务端存在客户端注册的情况下,会话服务端仍可称为注册于本身的客户端的宿主服务端,当第一宿主服务端和第二宿主服务端用于转发通信信息时,仍可将第一宿主服务端和第二宿主服务端称之为会话服务端。
本申请实施例一种分布式多服务端即时通信方法的实施原理为:首先邀请客户端将通信信息发送至会话服务端,后会话服务端接收通信信息,并保存通信信息,会话服务端发送新消息通知至第二宿主服务端;第二宿主服务端将新消息通知发送至被邀请客户端,被邀请客户端获取会话服务端保存的邀请客户端发送的通信消息;通过会话服务端实现邀请客户端与被邀请客户端之间的通信,在客户注册到不同服务端后,由于会话服务端不变,即可实现与不同服务端对应的不同客户端之间通过会话服务端进行相互通信的效果,使用户在不同服务端之间进行迁移时,无需重新填写相关用户信息,且数据不会丢失,进而提升用户的使用体验感。
以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。
Claims (9)
1.一种分布式多服务端即时通信方法,其特征在于,包括:
邀请客户端请求连接会话服务端;
所述会话服务端请求第一宿主服务端认证用户,认证通过则建立与所述邀请客户端的连接;其中所述第一宿主服务端与所述邀请客户端对应;
所述邀请客户端将获取到的通信信息发送至会话服务端;
所述会话服务端接收所述通信信息,并保存所述通信信息;以及
所述会话服务端发送新消息通知至第二宿主服务端;第二宿主服务端将所述新消息通知发送至被邀请客户端;其中所述第二宿主服务端与所述被邀请客户端对应;
所述被邀请客户端请求连接所述会话服务端;
所述会话服务端请求所述第二宿主服务端认证用户,并在认证通过后建立与所述被邀请客户端的连接;
所述被邀请客户端获取所述会话服务端保存的所述邀请客户端发送的通信消息。
2.根据权利要求1所述的一种分布式多服务端即时通信方法,其特征在于,在所述邀请客户端请求连接会话服务端的步骤之前,包括:
所述会话服务端上的注册用户账号创建消息会话;其中所述注册用户账号为注册到所述会话服务端上的用户账号;
所述会话服务端将创建所述消息会话的所述注册用户账号作为主持用户账号;
所述邀请账号将所述第一用户账号、第二用户账号或其他用户账号作为会话成员添加到所述消息会话中;
所述会话成员将另外一个账号添加至所述消息会话中。
3.根据权利要求2所述的一种分布式多服务端即时通信方法,其特征在于,将所述第一用户账号、所述第二用户账号和所述其他用户账号作为被邀请账号;
所述邀请账号将所述被邀请账号作为会话成员添加到所述消息会话中的步骤包括:
所述会话服务端判断是否收到所述邀请客户端对应的第一用户发送的第二用户账号;
若收到,所述会话服务端验证所述邀请客户端对应的所述第一用户账号,并在验证通过后,发送会话信息至所述第二宿主服务端;
所述第二宿主服务端将所述会话信息发送至所述被邀请客户端,并判断所述被邀请客户端对应的第二用户是否确认加入;
若确认加入,与所述第二用户对应的第二宿主服务端通知所述会话服务端,并为所述第二用户添加会话信息;
所述会话服务端在所述消息会话中添加确认加入所述消息会话的其他用户。
4.根据权利要求1所述的一种分布式多服务端即时通信方法,其特征在于,所述会话服务端请求第一宿主服务端认证用户,认证通过则建立与所述邀请客户端的连接的步骤包括:
所述邀请客户端登录所述第一宿主服务端,并向所述会话服务端建立连接请求;
所述会话服务端接收到所述连接请求后,发送一次性认证码至所述邀请客户端;
所述邀请客户端将所述一次性认证码发送至所述第一宿主服务端;
所述第一宿主服务端验证所述一次性认证码,并验证第一客户的身份,在验证通过后生成授权码发送至所述邀请客户端;其中,所述授权码包括用户账号信息;
所述邀请客户端将所述授权码发送至所述会话服务端;
所述会话服务端验证所述授权码,并在验证通过后建立与所述邀请客户端的通信连接。
5.根据权利要求2所述的一种分布式多服务端即时通信方法,其特征在于,所述消息会话内的实时通信流程,包括:
所述邀请客户端与所述会话服务端建立连接;
所述邀请客户端向所述会话服务端发送会话消息;
所述会话服务端在所述通信会话中保存所述会话消息,以及向所述通信会话中的与所有会话成员一一对应的宿主服务端发送新消息通知;其中一个宿主服务端与一个或多个所述客户端对应;
所有所述宿主服务端转发所述新消息通知至与所述宿主服务端对应的所述客户端;或所述客户端连接所述宿主服务端获取所述新消息通知,所述客户端连接到所述会话服务端获取所述会话消息。
6.根据权利要求2所述的一种分布式多服务端即时通信方法,其特征在于,所述消息会话内的实时通信流程,还包括:
所述邀请客户端发送所述会话消息至所述会话服务端;
所述会话服务端将所述会话消息转发至所述通信会话中的与所有所述客户端对应的所述宿主服务端;
所述宿主服务端保存所述会话消息,并向与所述宿主服务端对应的若干所述客户端发送所述新消息通知,所述客户端连接到所述宿主服务端获取会话消息。
7.根据权利要求2所述的一种分布式多服务端即时通信方法,其特征在于,所述消息会话内的实时通信流程,还包括:
所述邀请客户端向所述会话服务端发送所述会话消息;
所述会话服务端将所述会话消息转发至所述通信会话内的若干所述客户端;
若干所述客户端将所述会话消息转发至与若干所述客户端一一对应的所述宿主服务端;
所述会话服务端将所述会话消息转发至与所述会话服务端对应的若干所述客户端。
8.根据权利要求1所述的一种分布式多服务端即时通信方法,其特征在于,所述消息会话内的实时通信流程,还包括:
所述会话服务端与所述参与客户端建立全连接虚拟点到点网络;
基于所述虚拟点到点网络,所述邀请客户端与所述会话服务端进行实时通信。
9.根据权利要求8所述的一种分布式多服务端即时通信方法,其特征在于,所述会话服务端与所述参与客户端建立全连接虚拟点到点网络的步骤包括:
以所述会话服务端、转发服务端和所有所述参与客户端作为节点构成全连接虚拟点到点网络;
所述转发服务端是所述服务端为优化网络流量设置的一个或多个镜像节点;
所述会话服务端获取若干所述实时会话内所有所述虚拟点对点网络节点的网络定位信息;其中所述网络定位信息包括网络地址和端口号;
所述会话服务端基于所述网络定位信息与实时会话内的所有所述虚拟点对点网络节点进行通信,并将所述网络定位信息发送至实时会话内的所有所述虚拟点对点网络节点;
每个实时会话内的所述虚拟点对点网络节点接收到所述网络定位信息后,发送测试报文至其余所述虚拟点对点网络节点;
所述会话服务端基于所述测试报文获取若干在所述实时会话内的所述虚拟点对点网络节点的响应延迟,所述响应延迟等于每个所述虚拟点对点网络节点向其余所述虚拟点对点网络节点发送测试报文并被接收的时间与预设的接收时间之差;
所述会话服务端基于若干所述响应延迟生成转发路由表;
所述会话服务端基于所述转发路由表确定发送实时通信数据的虚拟点到点网络的下一跳节点,再通过所述下一跳节点发送实时通信数据至其余所述虚拟点对点网络节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583114.8A CN115002057B (zh) | 2022-05-26 | 2022-05-26 | 一种分布式多服务端即时通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583114.8A CN115002057B (zh) | 2022-05-26 | 2022-05-26 | 一种分布式多服务端即时通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115002057A true CN115002057A (zh) | 2022-09-02 |
CN115002057B CN115002057B (zh) | 2024-04-12 |
Family
ID=83028411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210583114.8A Active CN115002057B (zh) | 2022-05-26 | 2022-05-26 | 一种分布式多服务端即时通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002057B (zh) |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079925A (zh) * | 2006-12-25 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种分配即时通信会话的方法及系统 |
CN101136877A (zh) * | 2007-09-28 | 2008-03-05 | 腾讯科技(深圳)有限公司 | 即时通讯的方法及系统 |
CN101335724A (zh) * | 2007-06-29 | 2008-12-31 | 华为技术有限公司 | 一种基于家庭网关的通讯系统、方法和通讯设备 |
CN102202015A (zh) * | 2011-06-09 | 2011-09-28 | 张李影 | 实现不同种类即时通信工具互通的方法和系统 |
CN102546464A (zh) * | 2011-12-22 | 2012-07-04 | 华为技术有限公司 | 一种跨im系统的会议方法和系统 |
CN102893575A (zh) * | 2010-05-13 | 2013-01-23 | 微软公司 | 借助于ipsec和ike第1版认证的一次性密码 |
CN103888451A (zh) * | 2014-03-10 | 2014-06-25 | 百度在线网络技术(北京)有限公司 | 认证的授权方法、装置及系统 |
CN104144105A (zh) * | 2013-09-18 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 一种信息传输方法、装置和系统 |
CN104144175A (zh) * | 2013-05-06 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 数据迁移的方法、装置及系统 |
US20170171200A1 (en) * | 2015-12-15 | 2017-06-15 | Verizon Patent And Licensing Inc. | Network-based authentication and security services |
CN108306819A (zh) * | 2018-04-20 | 2018-07-20 | 网易(杭州)网络有限公司 | 基于区块链的即时通讯系统实现方法、介质和计算设备 |
CN108495249A (zh) * | 2018-02-05 | 2018-09-04 | 西安电子科技大学 | 基于位置信息低功耗的自组网路由方法 |
CN109040030A (zh) * | 2018-07-17 | 2018-12-18 | 北京奇安信科技有限公司 | 单点登录方法和系统 |
CN111193691A (zh) * | 2018-11-15 | 2020-05-22 | 中国电信股份有限公司 | 授权方法、系统和相关设备 |
CN111385666A (zh) * | 2020-03-04 | 2020-07-07 | 北京字节跳动网络技术有限公司 | 通信链路建立方法、装置、设备及存储介质 |
CN111431790A (zh) * | 2019-01-09 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种即时通讯方法、装置、系统及存储介质 |
CN111475795A (zh) * | 2020-04-12 | 2020-07-31 | 广州通达汽车电气股份有限公司 | 一种面向多应用进行统一认证授权的方法及装置 |
CN112134892A (zh) * | 2020-09-24 | 2020-12-25 | 南京邮电大学 | 一种移动边缘计算环境下的服务迁移方法 |
CN112689285A (zh) * | 2020-12-10 | 2021-04-20 | 航天信息股份有限公司 | 一种移动端sdk的授权认证方法及系统 |
CN113761510A (zh) * | 2020-06-05 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 用户信息处理方法、装置、设备及其介质 |
-
2022
- 2022-05-26 CN CN202210583114.8A patent/CN115002057B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079925A (zh) * | 2006-12-25 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种分配即时通信会话的方法及系统 |
CN101335724A (zh) * | 2007-06-29 | 2008-12-31 | 华为技术有限公司 | 一种基于家庭网关的通讯系统、方法和通讯设备 |
CN101136877A (zh) * | 2007-09-28 | 2008-03-05 | 腾讯科技(深圳)有限公司 | 即时通讯的方法及系统 |
CN102893575A (zh) * | 2010-05-13 | 2013-01-23 | 微软公司 | 借助于ipsec和ike第1版认证的一次性密码 |
CN102202015A (zh) * | 2011-06-09 | 2011-09-28 | 张李影 | 实现不同种类即时通信工具互通的方法和系统 |
CN102546464A (zh) * | 2011-12-22 | 2012-07-04 | 华为技术有限公司 | 一种跨im系统的会议方法和系统 |
CN104144175A (zh) * | 2013-05-06 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 数据迁移的方法、装置及系统 |
CN104144105A (zh) * | 2013-09-18 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 一种信息传输方法、装置和系统 |
CN103888451A (zh) * | 2014-03-10 | 2014-06-25 | 百度在线网络技术(北京)有限公司 | 认证的授权方法、装置及系统 |
US20170171200A1 (en) * | 2015-12-15 | 2017-06-15 | Verizon Patent And Licensing Inc. | Network-based authentication and security services |
CN108495249A (zh) * | 2018-02-05 | 2018-09-04 | 西安电子科技大学 | 基于位置信息低功耗的自组网路由方法 |
CN108306819A (zh) * | 2018-04-20 | 2018-07-20 | 网易(杭州)网络有限公司 | 基于区块链的即时通讯系统实现方法、介质和计算设备 |
CN109040030A (zh) * | 2018-07-17 | 2018-12-18 | 北京奇安信科技有限公司 | 单点登录方法和系统 |
CN111193691A (zh) * | 2018-11-15 | 2020-05-22 | 中国电信股份有限公司 | 授权方法、系统和相关设备 |
CN111431790A (zh) * | 2019-01-09 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种即时通讯方法、装置、系统及存储介质 |
CN111385666A (zh) * | 2020-03-04 | 2020-07-07 | 北京字节跳动网络技术有限公司 | 通信链路建立方法、装置、设备及存储介质 |
CN111475795A (zh) * | 2020-04-12 | 2020-07-31 | 广州通达汽车电气股份有限公司 | 一种面向多应用进行统一认证授权的方法及装置 |
CN113761510A (zh) * | 2020-06-05 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 用户信息处理方法、装置、设备及其介质 |
CN112134892A (zh) * | 2020-09-24 | 2020-12-25 | 南京邮电大学 | 一种移动边缘计算环境下的服务迁移方法 |
CN112689285A (zh) * | 2020-12-10 | 2021-04-20 | 航天信息股份有限公司 | 一种移动端sdk的授权认证方法及系统 |
Non-Patent Citations (2)
Title |
---|
张俊晖;: "Android即时通信系统的设计与实现", 自动化与仪器仪表, no. 02, 25 February 2016 (2016-02-25) * |
许峰;黄皓;王志坚;: "Web服务会话实体认证协议的改进", 计算机应用与软件, no. 11, 15 November 2008 (2008-11-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN115002057B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7940704B2 (en) | Mobile instant messaging conferencing method and system | |
EP1653707B1 (en) | Method and device for providing a communication session | |
US7647374B2 (en) | Method for managing sessions between network parties, methods, network element and terminal for managing calls | |
US7792519B2 (en) | Conferencing system | |
US7894842B2 (en) | Methods and devices for including a plurality of users in a conversation over a communication network | |
EP1775985B1 (en) | Group call system, terminal and group call control method for rejoining group calls | |
CN108347337B (zh) | 会议通信方法和装置 | |
KR101076733B1 (ko) | 영상통화 서비스 시스템 및 그 방법 | |
EP1811798A1 (en) | Contents server, and contents service system | |
RU2388165C2 (ru) | СПОСОБ РЕЗЕРВИРОВАНИЯ УСЛУГИ В "Push-to" СИСТЕМЕ | |
EP1571791B1 (en) | Mobile communication system and method for providing a real time messenger service among mobile communication terminals | |
CN101102145A (zh) | 一种移动终端发起多方会议系统和方法 | |
KR20080013684A (ko) | Pt 서비스의 자동 응답 모드에서의 프라이버시 확보 방법 | |
KR100614884B1 (ko) | 휴대폰 번호 기반의 모바일 인스턴트 메시징 서비스 방법 | |
CN115002057B (zh) | 一种分布式多服务端即时通信方法 | |
EP1333637A1 (en) | Telecommunication method and system | |
CN110365932B (zh) | 视频通话系统方法及装置 | |
CN101305623B (zh) | 用于确定具有控制功能的pt服务器的方法和装置 | |
JP2006121150A (ja) | 通信システム、接続先管理装置、および接続先検索方法 | |
KR20020020041A (ko) | 인터넷을 이용한 게임 제공 시스템 및 그 운용방법 | |
KR101303543B1 (ko) | 멀티미디어 인스턴트 메신저 서비스를 위한 통합 세션관리시스템 및 그 방법 | |
KR101295546B1 (ko) | 인스턴트 메신저 서비스 방법 | |
KR101322990B1 (ko) | Pt 서비스의 자동 응답 모드에서의 프라이버시 확보 방법 | |
JP2023506875A (ja) | 会議作成方法、ビデオ会議端末、データ会議サーバ、レガシー端末およびコンピュータプログラム | |
KR20050114558A (ko) | 피피티 서비스 제공 시스템의 주소 정보 관리 방법 및 장치 |
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 |