CN111343083A - 即时通信方法、装置、电子设备及可读存储介质 - Google Patents
即时通信方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111343083A CN111343083A CN202010442053.4A CN202010442053A CN111343083A CN 111343083 A CN111343083 A CN 111343083A CN 202010442053 A CN202010442053 A CN 202010442053A CN 111343083 A CN111343083 A CN 111343083A
- Authority
- CN
- China
- Prior art keywords
- client
- instant messaging
- session
- communication
- gateway
- 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
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
- 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/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书实施例公开了一种即时通信方法,接收客户端发送的网页即时通信请求;根据所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,并将所述会话用户名、所述会话密码和网关监听信息返回给所述客户端;接收所述客户端发送的通信检查包,根据所述会话用户名对所述通信检查包进行验证;在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据。
Description
技术领域
本说明书实施例涉及即时通信技术领域,尤其涉及一种即时通信方法、装置、电子设备及可读存储介质。
背景技术
目前在基于开源WebRTC技术进行音视频通话的业务场景中,WebRTC网关担负着在各个终端用户之间进行音视频中转的角色,一些开源的WebRTC网关,比如Janus和Licode等底层都借助开源的ICE库Libnice和通信终端之间进行WebRTC-ICE协商,通过协商为每个终端用户分配了一个唯一的中转端口,通过该中转端口和该用户进行通信。
发明内容
本说明书实施例提供了一种即时通信方法、装置、电子设备及可读存储介质,能够实现通过WebRTC网关的一个网关监听接口完成与多个客户端的通信。
本说明书实施例第一方面提供了一种即时通信方法,包括:
接收客户端发送的网页即时通信请求;
根据所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,并将所述会话用户名、所述会话密码和网关监听信息返回给所述客户端;
接收所述客户端发送的通信检查包,根据所述会话用户名对所述通信检查包进行验证,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的;
在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;
基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据。
本说明书实施例第二方面提供了一种即时通信装置,包括:
请求接收单元,用于接收客户端发送的网页即时通信请求;
分配单元,用于根据所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,并将所述会话用户名、所述会话密码和网关监听信息返回给所述客户端;
验证单元,用于接收所述客户端发送的通信检查包,根据所述会话用户名对所述通信检查包进行验证,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的;
新建单元,用于在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;
通信处理单元,用于基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据。
本说明书实施例第三方面还提供了一种即时通信系统,包括客户端,房间服务器和网页即时通信网关,包括:
所述客户端登陆所述房间服务器之后,发送网页即时通信请求给所述房间服务器;
所述房间服务器接收到所述即时通信请求之后,将所述即时通信请求发送给所述网页即时通信网关;
所述网页即时通信网关接收到网页即时通信请求之后,响应所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,然后将所述会话用户名、所述会话密码和网关监听信息返回给所述房间服务器;
所述房间服务器用于将接收到所述会话用户名、所述会话密码和所述网关监听信息发送给所述客户端;
所述客户端接收到所述会话用户名、所述会话密码和所述网关监听信息之后,根据所述会话用户名、所述会话密码和所述网关监听信息,生成通信检查包,并将所述通信检查包通过互联网发送给所述网页即时通信网关;
所述网页即时通信网关接收到所述通信检查包之后,根据所述会话用户名对所述通信检查包进行验证,在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;再基于所述新建的套接字,通过所述通信代理模块处理所述客户端通过互联网发送的即时通信数据。
本说明书实施例第四方面还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述即时通信方法的步骤。
本说明书实施例第五方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时上述即时通信方法的步骤。
本说明书实施例的有益效果如下:
基于上述技术方案,通过对客户端发送的通信检查包进行验证,在验证通过时,新建用户数据报协议的套接字和通信代理模块,再基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据,此时,由于新建的套接字与客户端的外网地址绑定,如此,客户端发送给网页即时通信网关的即时通信数据会指向新建的套接字,从而使得网页即时通信网关基于新建的套接字接收到客户端发送的即时通信数据,而新建的套接字中的接口为网关监听接口,如此,在存在多个客户端时,为每个客户端新建的套接字中的接口均为网关监听接口,而不需为每个客户端分配单独的接口以与每个客户端进行通信,进而实现通过一个网关监听接口即可完成与多个客户端的通信,能够在网关监听接口受限的情况下提高即时通信的效率。
附图说明
图1为本说明书实施例中即时通信系统的系统架构图;
图2为本说明书实施例中即时通信系统中各个设备的数据交互图;
图3为本说明书实施例中即时通信方法的流程示意图;
图4为本说明书实施例中即时通信装置的结构示意图;
图5为本说明书实施例中电子设备的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,如图1所示,本说明书实施例提供一种即时通信系统,包括客户端10,互联网20、房间服务器30和网页即时通信网关40,其中,客户端10登陆房间服务器30之后,再发送网页即时通信请求给房间服务器30;房间服务器30接收到即时通信请求之后,将即时通信请求发送给网页即时通信网关40;网页即时通信网关40接收到网页即时通信请求之后,响应网页即时通信请求,为网页即时通信请求的请求会话分配会话用户名和会话密码,然后将会话用户名、会话密码和网关监听信息通过房间服务器30返回给客户端10。
客户端10接收到网页即时通信网关40返回的会话用户名、会话密码和网关监听信息之后,根据会话用户名、会话密码和网关监听信息,生成通信检查包,并将通信检查包通过互联网20发送给网页即时通信网关40;
网页即时通信网关40接收到通信检查包之后,根据会话用户名和会话密码对通信检查包进行验证,在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,新建的套接字的接口为网关监听信息中的网关监听接口,新建的套接字与客户端10的外网地址绑定;再基于新建的套接字,通过通信代理模块处理客户端10通过互联网20发送的即时通信数据。
本说明书实施例中,通信检查包可以为简单的用UDP穿透NAT(Simple Traversalof UDP Through NATs,简称STUN)包,下面的通信检查包均用STUN包代替;以及网页即时通信网关40可以为Janus网关和Licode网关等。
本说明书实施例中,客户端10中的网页浏览器支持网页即时通信(Web Real-TimeCommunication,简称WebRTC),用于通过网页浏览器进行即时通信。
具体来讲,客户端10在登录房间服务器30之后,向房间服务器30发送会话描述协议(Session Description Protocol,简称SDP)的提议(offer),该提议作为网页即时通信请求。
本说明书实施例中,该SDP的offer会携带有以下信息:
第一种:媒体类型(例如为video, audio, bfcp,h225摄像机控制协议和etc等);
第二种:传输协议(例如为RTP/UDP/IP, H.320和etc等);
第三种:媒体格式(例如G711,G721,AAC-LD,H.264 video, MPEG video和etc等);
第四种:多播或单播地址和端口(例如c=IN IP4 192.168.8.76,其中,c=<网络类型> <地址类型> <地址>,IN表示INTERNET网络类型,地址类型包括IPV4和IPV6,INP4表示IPV4,192.168.8.76为IP地址);
第五种:本端的带宽信息;
第六种:本端的加密信息。
以及,房间服务器30接收到该SDP的offer之后,对该SDP的offer进行鉴权,在鉴权通过之后,将该SDP的offer转发给网页即时通信网关40;
网页即时通信网关40在接收到该SDP的offer之后,为请求会话分配唯一的会话用户名(TmpUser)和唯一的会话密码(TmpPwd),并获取网页即时通信网关40的网关监听信息,并将TmpUser、TmpPwd和网关监听信息放入生成的SDP的应答(answer)中,然后将该SDP的answer返回给房间服务器30;房间服务器30将该SDP的answer返回给客户端10;其中,网关监听信息包括网关监听地址和网关监听接口例如为47.112.13.55:8088,此时,网关监听地址为47.112.13.55,网关监听接口为8088。当然,为请求分配的会话用户名和会话密码也可以不是唯一的,但此时,需要分配的会话用户名和会话密码需要携带其它数据以进行区分。
以及客户端10接收到该SDP的answer之后,根据会话用户名和会话密码和网关监听信息,组装第一个STUN包并将其作为通信检查包,以及将第一个STUN包发给网关监听地址,其中,第一个STUN包包含会话用户名和加密后的会话密码,如此,使得将第一个STUN包发送给网页即时通信网关40。
本说明实施例中的STUN包均可以包含消息头和1个或多个属性,其中,消息头可以为20个字节,可以包含16位的消息类型,16位的消息长度和128位的事务ID;其中,消息类型许可的值如下:0x0001:捆绑请求,0x0101:捆绑响应,0x0111:捆绑错误响应,0x0002:共享私密请求,0x0102:共享私密响应,以及0x0112:共享私密错误响应;消息长度是消息大小的字节数,但不包括20字节的头部;事务ID为128位的标识符,用于随机请求和响应,请求与其相应的所有响应具有相同的标识符。
其中,STUN包的消息头之后是1个或多个属性,每个属性可以进行TLV编码,具体包括16位的属性类型、16位的属性长度和变长属性值。
具体地,属性类型定义如下:
MAPPED-ADDRESS属性表示映射过的IP地址和端口,其包括8位的地址族,16位的端口号及长度固定的IP地址;
RESPONSE-ADDRESS属性表示响应的目的地址;
USERNAME属性用于消息的完整性检查,用于消息完整性检查中标识共享私密,其中,USERNAME通常出现在共享私密响应中,与PASSWORD一起。当使用消息完整性检查时,可有选择地出现在捆绑请求中;
PASSWORD属性用在共享私密响应中,与USERNAME一起。PASSWORD的值是变长的,用作共享私密,它的长度必须是4字节的倍数,以保证属性与边界对齐。
具体地,以将会话用户名添加到第一个STUN包的用户名字段中,且第一个STUN包中的完整性验证的字段中包含有验证码,该验证码用于验证第一个STUN包的完整性,如此,会使得第一个STUN包的用户名字段下的数据为会话用户名;以及完整性验证的字段下的数据为验证码;如此,在网页即时通信网关40接收到第一个STUN包之后,首先通过验证码验证第一STUN包的完整性,在完整性验证成功之后,获取第一个STUN包中的用户名字段下的会话用户名,然后根据会话用户名查找对应的会话密码;由于第一个STUN包中未携带有会话密码,能够有效降低会话密码泄露的概率,提高会话的安全性。
例如在会话用户名为use1且会话密码为pat1,以及验证码为01010101时,第一个STUN包中的用户名字段包括username:use1;验证的字段:01010101,其中,客户端10和网页即时通信网关40通过共享密钥建立信任。
另一实施例中,也可以将会话用户名添加到第一个STUN包的用户名字段中,并将加密后的会话密码添加到第一个STUN包的密码字段中,且第一个STUN包中的完整性验证的字段中包含有验证码,该验证码用于验证第一个STUN包的完整性,如此,会使得第一个STUN包的用户名字段下的数据为会话用户名;密码字段下的数据为加密后的会话密码,以及完整性验证的字段下的数据为验证码。例如在会话用户名为use1且会话密码为pat1,以及验证码为01010101时,第一个STUN包中的部分数据为username:use1,password:pat1-1;验证的字段:01010101,其中,pat1-1为使用共享密钥对pat1加密后的数据,其中,客户端10和网页即时通信网关40通过共享密钥建立信任。
网页即时通信网关40接收到第一个STUN包之后,若第一个STUN包按照约定仅携带会话用户名,可以按照STUN规范,验证第一个STUN包的合法性。即,从第一个STUN包的用户名字段中提取会话用户名,然后判断会话用户名与网页即时通信网关40给客户端10分配的会话用户名是否相同,若相同,则通过验证,确定第一个STUN包合法;否则,则验证未通过,确定第一个STUN不合法。
网页即时通信网关40接收到第一个STUN包之后,若第一个STUN包按照约定携带会话用户名和会话密码,可以按照STUN规范,验证第一个STUN包的合法性。即,从第一个STUN包中的密码字段中提取加密后的会话密码并进行解密,得到会话密码,然后通过分配的会话用户名和会话密码对从第一STUN包中获取的会话用户名和会话密码进行验证,若会话用户名相同且会话密码相同时,则验证通过,确定第一个STUN包合法;否则,则验证未通过,确定第一个STUN不合法。
网页即时通信网关40在验证通过之后,新建用户数据报协议(User DatagramProtocol,简称 UDP)的套接字和通信代理模块,其中,新建的套接字的接口为网关监听接口,该套接字与客户端10的外网地址绑定;基于新建的套接字,通过通信代理模块接收客户端10发送的即时通信数据。
具体来讲,而网页即时通信网关40中存储有网关监听接口和网关地址,由此可知,新建的套接字Socket=(网关监听地址:网关监听接口),例如网关监听地址和网关监听接口为47.112.13.55:8088,则新建的套接字Socket=(47.112.13.55:8080);而由于第一个STUN包中携带有客户端10的外网地址,则调用UDP中的接收数据函数(recvfrom方法)将新建的套接字与客户端10的外网地址绑定:例如若客户端10的外网地址为NAT_A,则新建的套接字Socket=(47.112.13.55:8080)与NAT_A绑定。
由于新建的套接字与客户端10的外网地址绑定,如此,客户端10发送给网页即时通信网关40的即时通信数据会指向新建的套接字,从而使得网页即时通信网关40基于新建的套接字接收到客户端10发送的即时通信数据,并通过通信代理模块处理客户端10发送的即时通信数据。
例如,网页即时通信网关40分别与客户端10、客户端11、客户端12和客户端13进行即时通信,此时,网页即时通信网关40会新建4个套接字依次为fd0、fd1、fd2和fd3,以及4个通信代理模块依次为td0、td1、td2和td3,依次与客户端10、客户端11、客户端12和客户端13对应,如此,通过fd0会接收到客户端10发送的即时通信数据,然后发送给td0进行处理;通过fd1会接收到客户端11发送的即时通信数据,然后发送给td1进行处理;通过fd2会接收到客户端12发送的即时通信数据,然后发送给td2进行处理;以及通过fd3会接收到客户端13发送的即时通信数据,然后发送给td3进行处理;
其中,若网页即时通信网关40的网关监听地址和网关监听接口为47.112.13.55:8088,则fd0、fd1、fd2和fd3均为(47.112.13.55:8080),以及调用recvfrom方法将fd0与客户端10的外网地址绑定,调用recvfrom方法将fd1与客户端11的外网地址绑定,调用recvfrom方法将fd2与客户端12的外网地址绑定,以及调用recvfrom方法将fd3与客户端13的外网地址绑定。
如此,在网页即时通信网关40为多个客户端提供网页即时通信服务时,网页即时通信网关40会为每个客户端新建套接字和通信代理模块,以使得每个客户端可以通过各自对应的套接字来传输即时通信数据,并将传输的即时通信数据发送到对应的通信代理模块进行处理,此时,新建的每个套接字的网关监听接口均相同即为网页即时通信网关40的网关监听接口,而不需为每个客户端分配单独的接口以与每个客户端进行通信,进而实现通过一个网关监听接口即可完成与多个客户端的通信。
参见图2,为本说明书实施例中即时通信系统中各个设备的数据交互图,包括以下步骤,步骤1、客户端10登录房间服务器30,发送SDP(Offer)信息给房间服务器30;步骤2、房间服务器30鉴权通过后,将SDP(Offer)信息下发给Janus网关40;步骤3、Janus网关40的鉴权模块401为本次会话分配唯一的用户名和密码(TmpUse以及TmpPwd),根据TmpUse、TmpPwd、网关监听地址及网关监听接口47.112.13.55:8088,生成SDP(Answer);并将SDP(Answer)返回给房间服务器30;步骤4、房间服务器30将SDP(Answer)下发给客户端10;步骤5、客户端10组装第一个STUN包通过互联网20发往网关监听地址,其中,第一个STUN包的用户名字段中的数据为TmpUser,并且密码字段使用共享密码对TmpPwd进行加密,添加相应的数据到完整性验证的字段中;步骤6、UDP包绑定,具体地,Janus网关40的监听模块42用于按照STUN规范,验证步骤5中STUN包的合法性,如果合法,则新建一个UDP套接字fd,同样监听8088端口,调用UDP_recvfrom方法绑定该fd到客户端10的外网地址NAT_A,NAT_A可以从步骤5中的STUN包中获取到,同时创建一个代理模块43,专门负责与客户端10之间的后续通信;步骤7、发送后续数据包,具体地,可以基于新建的套接字,接收来自客户端10后续发送的即时通信数据,由代理模块43处理客户端10后续发送的即时通信数据,其中,客户端10后续发送的即时通信数据通过互联网20依次发送STUN包、DTLS包和SRTP包,STUN包用于和服务器进行连通性检查;然后是DTLS包和服务器协商通信加密相关的秘钥,最后是通过该秘钥加密的SRTP包,SRTP包承载客户端待发送的音视频数据。
由此可知,Janus网关40只监听了一个端口8088,所有客户端的第一个STUN包由监听模块42处理,后续的包由专门的代理模块处理,从而达到了Janus网关40的端口收敛的目的,不必为每一个接入的客户端分配单独的端口,在端口受限的情况下能够每个Janus网关40能够为更多客户端提供即时通信服务,进而能够有效提高即时通信效率。
而且通过对客户端发送的通信检查包进行验证,在验证通过时,新建用户数据报协议的套接字和通信代理模块,再基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据,此时,由于新建的套接字与客户端的外网地址绑定,如此,客户端发送给网页即时通信网关的即时通信数据会指向新建的套接字,从而使得网页即时通信网关基于新建的套接字接收到客户端发送的即时通信数据,而新建的套接字中的接口为网关监听接口,如此,在存在多个客户端时,为每个客户端新建的套接字中的接口均为网关监听接口,而不需为每个客户端分配单独的接口以与每个客户端进行通信,进而实现通过一个网关监听接口即可完成与多个客户端的通信,能够网关监听接口受限的情况下提高即时通信的效率。
第二方面,基于相同的技术构思,本说明书实施例提供一种即时通信方法,应用于网页即时通信网关中,参见图3,包括:
步骤302、接收客户端发送的网页即时通信请求;
步骤304、根据所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,并将所述会话用户名、所述会话密码和网关监听信息返回给所述客户端;
步骤306、接收所述客户端发送的通信检查包,根据所述会话用户名对所述通信检查包进行验证,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的;
步骤308、在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;
步骤310、基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据。
在一种可选的实施方式中,所述新建的套接字与所述客户端的外网地址绑定的步骤,包括:
通过UDP中的接收数据函数将所述新建的套接字与所述客户端的外网地址绑定。
在一种可选的实施方式中,接收所述客户端发送的通信检查包,包括:
通过所述网页即时通信网关中的监听模块接收所述通信检查包,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的第一个STUN包。
在一种可选的实施方式中,第一个STUN包的用户名字段下的数据为所述会话用户名。
第三方面,基于与前述实施例中即时通信方法同样的发明构思,本说明书实施例还提供一种即时通信装置,如图4所示,包括:
请求接收单元401,用于接收客户端发送的网页即时通信请求;
分配单元402,用于根据所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,并将所述会话用户名、所述会话密码和网关监听信息返回给所述客户端;
验证单元403,用于接收所述客户端发送的通信检查包,根据所述会话用户名对所述通信检查包进行验证,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的;
新建单元404,用于在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;
通信处理单元405,用于基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据。
在一种可选的实施方式中,即时通信装置还包括:
绑定单元,用于通过UDP中的接收数据函数将所述新建的套接字与所述客户端的外网地址绑定。
在一种可选的实施方式中,验证单元403,用于通过所述网页即时通信网关中的监听模块接收所述通信检查包,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的第一个STUN包。
在一种可选的实施方式中,第一个STUN包的用户名字段下的数据为所述会话用户名。
第四方面,基于与前述实施例中即时通信方法同样的发明构思,本说明书实施例还提供一种电子设备,如图5所示,包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的计算机程序,所述处理器502执行所述程序时实现前文所述即时通信方法的任一方法的步骤。
其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器502代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口505在总线500和接收器501和发送器503之间提供接口。接收器501和发送器503可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器502负责管理总线500和通常的处理,而存储器504可以被用于存储处理器502在执行操作时所使用的数据。
第五方面,基于与前述实施例中即时通信方法的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述即时通信方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。
Claims (11)
1.一种即时通信方法,应用于网页即时通信网关中,包括:
接收客户端发送的网页即时通信请求;
根据所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,并将所述会话用户名、所述会话密码和网关监听信息返回给所述客户端;
接收所述客户端发送的通信检查包,根据所述会话用户名对所述通信检查包进行验证,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的;
在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;
基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据。
2.如权利要求1所述的通信方法,所述新建的套接字与所述客户端的外网地址绑定的步骤,包括:
通过UDP中的接收数据函数将所述新建的套接字与所述客户端的外网地址绑定。
3.如权利要求2所述的通信方法,所述接收所述客户端发送的通信检查包,包括:
通过所述网页即时通信网关中的监听模块接收所述通信检查包,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的第一个STUN包。
4.如权利要求3所述的通信方法,所述第一个STUN包的用户名字段下的数据为所述会话用户名。
5.一种即时通信装置,包括:
请求接收单元,用于接收客户端发送的网页即时通信请求;
分配单元,用于根据所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,并将所述会话用户名、所述会话密码和网关监听信息返回给所述客户端;
验证单元,用于接收所述客户端发送的通信检查包,根据所述会话用户名对所述通信检查包进行验证,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的;
新建单元,用于在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;
通信处理单元,用于基于所述新建的套接字,通过所述通信代理模块接收所述客户端发送的即时通信数据。
6.如权利要求5所述的通信装置,还包括:
绑定单元,用于通过UDP中的接收数据函数将所述新建的套接字与所述客户端的外网地址绑定。
7.如权利要求6所述的通信装置,所述验证单元,用于通过所述网页即时通信网关中的监听模块接收所述通信检查包,其中,所述通信检查包是所述客户端根据所述会话用户名和所述网关监听信息生成的第一个STUN包。
8.如权利要求7所述的通信装置,所述第一个STUN包的用户名字段下的数据为所述会话用户名。
9.一种即时通信系统,包括客户端,房间服务器和网页即时通信网关,包括:
所述客户端登陆所述房间服务器之后,发送网页即时通信请求给所述房间服务器;
所述房间服务器接收到所述即时通信请求之后,将所述即时通信请求发送给所述网页即时通信网关;
所述网页即时通信网关接收到网页即时通信请求之后,响应所述网页即时通信请求,为所述网页即时通信请求的请求会话分配会话用户名和会话密码,然后将所述会话用户名、所述会话密码和网关监听信息返回给所述房间服务器;
所述房间服务器用于将接收到所述会话用户名、所述会话密码和所述网关监听信息发送给所述客户端;
所述客户端接收到所述会话用户名、所述会话密码和所述网关监听信息之后,根据所述会话用户名、所述会话密码和所述网关监听信息,生成通信检查包,并将所述通信检查包通过互联网发送给所述网页即时通信网关;
所述网页即时通信网关接收到所述通信检查包之后,根据所述会话用户名对所述通信检查包进行验证,在验证通过时,新建用户数据报协议的套接字和通信代理模块,其中,所述新建的套接字的接口为所述网关监听信息中的网关监听接口,所述新建的套接字与所述客户端的外网地址绑定;再基于所述新建的套接字,通过所述通信代理模块处理所述客户端通过互联网发送的即时通信数据。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-4任一项所述通信方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-4任一项所述通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442053.4A CN111343083B (zh) | 2020-05-22 | 2020-05-22 | 即时通信方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442053.4A CN111343083B (zh) | 2020-05-22 | 2020-05-22 | 即时通信方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111343083A true CN111343083A (zh) | 2020-06-26 |
CN111343083B CN111343083B (zh) | 2020-08-11 |
Family
ID=71188104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010442053.4A Active CN111343083B (zh) | 2020-05-22 | 2020-05-22 | 即时通信方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111343083B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111629011A (zh) * | 2020-07-28 | 2020-09-04 | 深圳诚一信科技有限公司 | 一种即时视频通信方法、设备、系统及可读存储介质 |
CN112770072A (zh) * | 2020-12-30 | 2021-05-07 | 北京北信源软件股份有限公司 | 一种数据传输方法、装置及存储介质 |
CN113783867A (zh) * | 2021-09-07 | 2021-12-10 | 福建天泉教育科技有限公司 | 一种请求认证方法及终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090031005A1 (en) * | 2007-07-23 | 2009-01-29 | Bellsouth Intellectual Property Corporation | Portal COM Module |
CN101867621A (zh) * | 2010-07-02 | 2010-10-20 | 苏州阔地网络科技有限公司 | 一种网页上实现的p2p通讯的方法 |
WO2013166696A1 (zh) * | 2012-05-11 | 2013-11-14 | 华为技术有限公司 | 数据传输方法、系统及装置 |
CN103929438A (zh) * | 2014-05-06 | 2014-07-16 | 中国联合网络通信集团有限公司 | 基于网页浏览器通信的防火墙穿越方法、设备和系统 |
CN104821909A (zh) * | 2015-04-22 | 2015-08-05 | 北京云艾科技有限公司 | 端对端的数据传输方法和系统 |
US9331967B2 (en) * | 2013-02-04 | 2016-05-03 | Oracle International Corporation | Browser/HTML friendly protocol for real-time communication signaling |
CN107079021A (zh) * | 2014-10-21 | 2017-08-18 | 统有限责任两合公司 | 在建立rtc客户端与rtc服务器之间的rtc通信连接时穿越应用层网关防火墙的电信装置和方法 |
CN107682251A (zh) * | 2017-10-18 | 2018-02-09 | 福建中金在线信息科技有限公司 | 基于websocket的网页即时聊天方法及装置 |
CN109088958A (zh) * | 2018-09-19 | 2018-12-25 | 腾讯数码(天津)有限公司 | 数据传输方法及计算机设备 |
-
2020
- 2020-05-22 CN CN202010442053.4A patent/CN111343083B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090031005A1 (en) * | 2007-07-23 | 2009-01-29 | Bellsouth Intellectual Property Corporation | Portal COM Module |
CN101867621A (zh) * | 2010-07-02 | 2010-10-20 | 苏州阔地网络科技有限公司 | 一种网页上实现的p2p通讯的方法 |
WO2013166696A1 (zh) * | 2012-05-11 | 2013-11-14 | 华为技术有限公司 | 数据传输方法、系统及装置 |
US9331967B2 (en) * | 2013-02-04 | 2016-05-03 | Oracle International Corporation | Browser/HTML friendly protocol for real-time communication signaling |
CN103929438A (zh) * | 2014-05-06 | 2014-07-16 | 中国联合网络通信集团有限公司 | 基于网页浏览器通信的防火墙穿越方法、设备和系统 |
CN107079021A (zh) * | 2014-10-21 | 2017-08-18 | 统有限责任两合公司 | 在建立rtc客户端与rtc服务器之间的rtc通信连接时穿越应用层网关防火墙的电信装置和方法 |
CN104821909A (zh) * | 2015-04-22 | 2015-08-05 | 北京云艾科技有限公司 | 端对端的数据传输方法和系统 |
CN107682251A (zh) * | 2017-10-18 | 2018-02-09 | 福建中金在线信息科技有限公司 | 基于websocket的网页即时聊天方法及装置 |
CN109088958A (zh) * | 2018-09-19 | 2018-12-25 | 腾讯数码(天津)有限公司 | 数据传输方法及计算机设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111629011A (zh) * | 2020-07-28 | 2020-09-04 | 深圳诚一信科技有限公司 | 一种即时视频通信方法、设备、系统及可读存储介质 |
CN112770072A (zh) * | 2020-12-30 | 2021-05-07 | 北京北信源软件股份有限公司 | 一种数据传输方法、装置及存储介质 |
CN112770072B (zh) * | 2020-12-30 | 2022-12-02 | 北京北信源软件股份有限公司 | 一种数据传输方法、装置及存储介质 |
CN113783867A (zh) * | 2021-09-07 | 2021-12-10 | 福建天泉教育科技有限公司 | 一种请求认证方法及终端 |
CN113783867B (zh) * | 2021-09-07 | 2023-07-25 | 福建天泉教育科技有限公司 | 一种请求认证方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111343083B (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111343083B (zh) | 即时通信方法、装置、电子设备及可读存储介质 | |
US9398026B1 (en) | Method for authenticated communications incorporating intermediary appliances | |
US8549614B2 (en) | Establishing internet protocol security sessions using the extensible messaging and presence protocol | |
JP3819729B2 (ja) | データ安全化通信装置及びその方法 | |
CN107077432B (zh) | Https请求充实 | |
US9350711B2 (en) | Data transmission method, system, and apparatus | |
CN108769292B (zh) | 报文数据处理方法及装置 | |
JPH10178450A (ja) | フレームを捕獲、カプセル化及び暗号化するための擬似ネットワークアダプタ | |
JP2018528679A (ja) | 負荷平衡システムにおいて接続を確立するデバイス及び方法 | |
US20060253701A1 (en) | Method for providing end-to-end security service in communication network using network address translation-protocol translation | |
CN113904809B (zh) | 一种通信方法、装置、电子设备及存储介质 | |
CN107426339A (zh) | 一种数据连接通道的接入方法、装置及系统 | |
CN113630439B (zh) | 实时通信rtc连接方法、服务器及存储介质 | |
CN105516062B (zh) | 一种实现L2TP over IPsec接入的方法 | |
KR20180130203A (ko) | 사물인터넷 디바이스 인증 장치 및 방법 | |
CN109040059B (zh) | 受保护的tcp通信方法、通信装置及存储介质 | |
WO2023036348A1 (zh) | 一种加密通信方法、装置、设备及介质 | |
US9413590B2 (en) | Method for management of a secured transfer session through an address translation device, corresponding server and computer program | |
CN110474922B (zh) | 一种通信方法、pc系统及接入控制路由器 | |
CN103051636B (zh) | 一种数据报文的传输方法和设备 | |
CN113904807B (zh) | 一种源地址认证的方法、装置、电子设备及存储介质 | |
CN108064441B (zh) | 一种加速网络传输优化方法以及系统 | |
CN113726895A (zh) | 文件传输方法、装置及网络ktv系统 | |
US8646066B2 (en) | Security protocol control apparatus and security protocol control method | |
US11765237B1 (en) | Session-based remote direct memory access |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40030185 Country of ref document: HK |