一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

即时通讯方法、装置、服务器及存储介质与流程

2021-10-16 03:03:00 来源:中国专利 TAG:即时通讯 装置 实施 通信 计算机


1.本发明实施例涉及通信技术领域,尤其是一种即时通讯方法、装置、计算机设备及存储介质。


背景技术:

2.即时通讯领域较为广泛,利用长连接的特性,可以应用在视频会议、聊天、私信、互动、弹幕等场景。
3.目前市面上的即时通讯软件大都是都是基于tcp协议开发的。基于tcp协议的即时通讯软件工作量巨大,扩展性差,即时通讯的效率较低。


技术实现要素:

4.本发明实施例提供一种即时通讯方法、装置、计算机设备及存储介质,用于解决即时通讯的效率较低的技术问题。
5.为解决上述技术问题,本发明创造的实施例采用的一个技术方案是:提供一种即时通讯方法,应用于服务器,包括:接收请求客户端发送的通信连接建立请求,其中,通信连接建立请求用于请求建立超文本协议http2的通信连接,通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识;利用哈希函数算法,确定预先存储的请求客户端的唯一标识对应的原始哈希值,以及鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权;若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端;接收请求客户端发送的数据流,并将数据流发送至接入请求客户端,其中,数据请用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
6.在一些方式中,利用哈希函数算法,确定预先存储的请求客户端的唯一标识对应的原始哈希值,以及鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权,包括:通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数;调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值;根据唯一标识,从预先存储的哈希库中获取与请求客户端对应的原始哈希值;若目标哈希值与原始哈希值一致,则对请求客户端鉴权成功。
7.在一些方式中,调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值,包括:对鉴权密钥执行目标哈希函数的哈希函数运算,以得到目标哈希桶的地址;目标哈希桶与鉴权密钥对应;根据目标哈希桶的地址,查找目标哈希桶;根据鉴权密钥,从目标哈希桶中读取目标哈希值。
8.在一些方式中,通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数,包括:读取预先存储的哈希函数与密钥的对应关系,获取与鉴权密钥匹配的目标哈希函数。
9.在一些方式中,利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识
对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权之后,还包括:若目标哈希值与原始哈希值不一致,则向请求客户端发送鉴权失败消息。
10.在一些方式中,与请求客户端建立http2通信连接之后,还包括:若未接收到请求客户端的连接响应消息,则统计连接失败次数,连接失败次数用于表示通过http2通信协议向请求客户端发送连接请求消息且未接收到连接响应消息的次数;若连接失败次数大于或等于连接失败次数阈值,则断开与请求客户端建立的http2通信连接。
11.在一些方式中,与请求客户端建立http2通信连接之后,还包括:接收请求客户端发送的数据传输请求,其中,数据传输请求包括:数据资源包和传输目的地址;响应于数据传输请求,利用http2通信协议,向传输目的地址发送数据资源包。
12.为解决上述技术问题,本发明实施例还提供一种即时通讯装置,包括:接收模块,用于接收请求客户端发送的通信连接建立请求;通信连接建立请求用于请求建立超文本协议http2的通信连接;通信连接建立请求包括:请求客户端的唯一标识和鉴权密钥;鉴权模块,用于利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权;处理模块,用于若鉴权成功,则与请求客户端建立http2通信连接。
13.在一些方式中,鉴权模块,具体用于:
14.通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数;
15.调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值;
16.根据唯一标识,从预先存储的哈希库中获取与请求客户端对应的原始哈希值;
17.若目标哈希值与原始哈希值一致,则对请求客户端鉴权成功。
18.在一些方式中,鉴权模块,具体用于:
19.对鉴权密钥执行目标哈希函数的哈希函数运算,以得到目标哈希桶的地址;目标哈希桶与鉴权密钥对应;
20.根据目标哈希桶的地址,查找目标哈希桶;
21.根据鉴权密钥,从目标哈希桶中读取目标哈希值。
22.在一些方式中,鉴权模块,具体用于:
23.读取预先存储的哈希函数与密钥的对应关系,获取与鉴权密钥匹配的目标哈希函数。
24.在一些方式中,即时通讯装置还包括:
25.发送模块,用于若目标哈希值与原始哈希值不一致,则向请求客户端发送鉴权失败消息。
26.在一些方式中,处理模块,还用于若未接收到请求客户端的连接响应消息,则统计连接失败次数,连接失败次数用于表示通过http2通信协议向请求客户端发送连接请求消息且未接收到连接响应消息的次数;
27.处理模块,还用于若连接失败次数大于或等于连接失败次数阈值,则断开与请求客户端建立的http2通信连接。
28.在一些方式中,接收模块,还用于接收请求客户端发送的数据传输请求,其中,数
据传输请求包括:数据资源包和传输目的地址;
29.发送模块,还用于响应于数据传输请求,利用http2通信协议,向传输目的地址发送数据资源包。
30.为解决上述技术问题本发明实施例还提供一种服务器,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述即时通讯方法的步骤。
31.为解决上述技术问题本发明实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述即时通讯方法的步骤。
32.本发明实施例的有益效果是:在接收请求客户端发送的用于请求建立超文本协议http2的通信连接建立请求后,由于通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识,因此,服务器可以利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端。后续,服务器接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。其中,数据请求用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
33.由上可知,现有技术中,服务器采用每一次请求经过三次握手并且完成单次请求就断开的方式,与请求客户端进行通信连接。这样,虽然安全性有一定保证,但是导致了即时通讯的传输效率较低。而本技术中,服务器可以利用哈希函数算法,对请求客户端进行鉴权,并在鉴权成功后与请求客户端建立http2通信连接。这样一来,服务器在保证鉴权安全性的同时,还可以与请求客户端建立http2通信连接。由于http2通信连接具体多路复用、二进制分帧、首部压缩以及服务端推送等特点,因此,本技术实施例在保证鉴权安全性的同时,解决了即时通讯的效率较低的技术问题,提高了即时通讯的效率。
附图说明
34.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
35.图1为本技术一个具体实施例的即时通讯方法的流程示意图之一;
36.图2为本技术一个具体实施例的即时通讯方法的流程示意图之二;
37.图3为本技术一个具体实施例的即时通讯方法的流程示意图之三;
38.图4为本技术一个具体实施例的即时通讯方法的流程示意图之四;
39.图5为本技术一个具体实施例的即时通讯方法的流程示意图之五;
40.图6为本技术一个具体实施例的即时通讯方法的流程示意图之六;
41.图7为本技术一个具体实施例的即时通讯方法的流程示意图之七;
42.图8为本技术一个实施例的即时通讯装置基本结构示意图;
43.图9为本技术一个实施例的服务器的基本结构框图。
具体实施方式
44.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
45.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
46.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
47.即时通讯领域较为广泛,利用长连接的特性,可以应用在视频会议、聊天、私信、互动、弹幕等场景。
48.目前市面上的即时通讯软件大都是都是基于tcp协议开发的。基于tcp协议的即时通讯软件工作量巨大,扩展性差,即时通讯的效率较低。
49.为了解决上述技术问题,本技术实施例提供一种即时通讯方法,应用于服务器,包括:接收请求客户端发送的通信连接建立请求,其中,通信连接建立请求用于请求建立超文本协议http2的通信连接,通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识;利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权;若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端;接收请求客户端发送的数据流,并将数据流发送至接入请求客户端,其中,数据请用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
50.由上可知,在接收请求客户端发送的用于请求建立超文本协议http2的通信连接建立请求后,由于通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识,因此,服务器可以利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端。后续,服务器接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。其中,数据请求用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
51.现有技术中,服务器采用每一次请求经过三次握手并且完成单次请求就断开的方式,与请求客户端进行通信连接。这样,虽然安全性有一定保证,但是导致了即时通讯的传输效率较低。而本技术中,服务器可以利用哈希函数算法,对请求客户端进行鉴权,并在鉴
权成功后与请求客户端建立http2通信连接。这样一来,服务器在保证鉴权安全性的同时,还可以与请求客户端建立http2通信连接。由于http2通信连接具体多路复用、二进制分帧、首部压缩以及服务端推送等特点,因此,本技术实施例在保证鉴权安全性的同时,解决了即时通讯的效率较低的技术问题,提高了即时通讯的效率。
52.如图1所示,为本实施例提供的一种即时通讯方法的流程示意图,包括s101至s104:
53.s101、接收请求客户端发送的通信连接建立请求。
54.具体的,请求客户端在与服务器进行通信时,可以向服务器发送通信连接建立请求。
55.其中,通信连接建立请求用于请求建立超文本协议http2的通信连接,通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识。
56.http2协议具有以下优点多路复用(multiplexing)、二进制分帧、首部压缩(header compression)和服务器推送等优点。若服务器与请求客户端建立http2的通信连接,则可以有效的解决了即时通讯的效率较低的技术问题,提高了即时通讯的效率。
57.多路复用允许同时通过单一的http2连接发起多重的请求响应消息。http2的多路复用则允许同时通过单一的http2连接发起多重的请求响应消息。因此http2可以很容易的去实现多流并行而不用依赖建立多个tcp连接,http2把http协议通信的基本单位缩小为一个一个的帧,这些帧对应着逻辑流中的消息。并行地在同一个tcp连接上双向交换消息。
58.其次,http2在应用层(http2)和传输层(tcporudp)之间增加一个二进制分帧层。http2通信都在一个连接上完成,这个连接可以承载任意数量的双向数据流。在过去,http性能优化的关键并不在于高带宽,而是低延迟。tcp连接会随着时间进行自我调谐,起初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度。这种调谐则被称为tcp慢启动。由于这种原因,让原本就具有突发性和短时性的http连接变的十分低效。http2通过让所有数据流共用同一个连接,可以更有效地使用tcp连接,让高带宽也能真正的服务于http的性能提升。
59.再次,http2使用了专门为首部压缩而设计的hpack算法,大大减少了流量。
60.http2还具有服务器推送的功能。服务器推送是一种在请求客户端请求之前发送数据的机制。在http2中,服务器可以对请求客户端的一个请求发送多个响应。serverpush让http1.x时代使用内嵌资源的优化手段变得没有意义。如果一个请求是由某个主页发起的,服务器很可能会响应主页内容、logo以及样式表,因为服务器知道请求客户端会用到这些东西。这相当于在一个html文档内集合了所有的资源。不过与之相比,服务器推送还有一个很大的优势:可以缓存。也让在遵循同源的情况下,不同页面之间可以共享缓存资源成为可能。
61.s102、利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。
62.具体的,服务器在接收到请求客户端发送的通信连接建立请求后,利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。
63.其中,唯一标识可以是终端的国际移动用户识别码(imsi,international mobile subscriber identity),也可以是终端的移动设备国际身份码(international mobile equipment identity,imei),还可以是其他标识,本技术对此不作限定。
64.鉴权密钥可以是运维人员预先设定好的。应理解,服务器与请求客户端中均存储有鉴权密钥。服务器可以利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。
65.s103、若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端。
66.具体的,在利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权后,若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端。
67.接入标识为请求客户端请求建立连接时,请求客户端与服务器之间的路由标识。该路由标识用于表示从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。。
68.s104、接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。
69.具体的,在与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端后,服务器接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。
70.其中,数据请用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
71.在二进制分帧层上,http 2.0会将所有传输的信息分割为更小的消息和帧,并对它们采用二进制格式的编码,其中http1.x的首部信息会被封装到headers帧,而我们的request body则封装到data帧里面。
72.本技术实施例提供一种即时通讯方法,应用于服务器,包括:接收请求客户端发送的通信连接建立请求,其中,通信连接建立请求用于请求建立超文本协议http2的通信连接,通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识;利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权;若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端;接收请求客户端发送的数据流,并将数据流发送至接入请求客户端,其中,数据请用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
73.由上可知,在接收请求客户端发送的用于请求建立超文本协议http2的通信连接建立请求后,由于通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识,因此,服务器可以利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应
的路由连接接入请求客户端。后续,服务器接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。其中,数据请求用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
74.现有技术中,服务器采用每一次请求经过三次握手并且完成单次请求就断开的方式,与请求客户端进行通信连接。这样,虽然安全性有一定保证,但是导致了即时通讯的传输效率较低。而本技术中,服务器可以利用哈希函数算法,对请求客户端进行鉴权,并在鉴权成功后与请求客户端建立http2通信连接。这样一来,服务器在保证鉴权安全性的同时,还可以与请求客户端建立http2通信连接。由于http2通信连接具体多路复用、二进制分帧、首部压缩以及服务端推送等特点,因此,本技术实施例在保证鉴权安全性的同时,解决了即时通讯的效率较低的技术问题,提高了即时通讯的效率。
75.可选的,如图2所示,服务器利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权的方法具体包括:
76.s201、通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数。
77.目前存在一些黑客通过逆向调试分析请求客户端的发送地址的鉴权函数,从而可以破解出如何生成鉴权成功消息的函数,最终则绕过了服务器的鉴权,以能够不通过服务器完成对请求客户端的非法鉴权。
78.本技术中,服务器在对请求客户端鉴权时,为了保证鉴权的安全性,服务器可以通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数。
79.在具体实施过程中,n个哈希(hash)函数包括:md5(message digest algorithm5,信息

摘要算法第五版)和sha

1(secure hash algorithm 1,安全散列算法第一版)。crc32(cyclic redundancy check 32,循环冗余校验)中的任意两种或三种均有。还可以有其他更高版本或更低版本的哈希算法,或者与上述三种哈希算法均不相同的哈希算法。
80.多态哈希函数接口为:定义有哈希函数的基类,哈希函数的基类中定义了一个抽象接口calchashdata。然后定义具体不同的哈希函数类来实现这个抽象接口calchashdata,从而实现多态哈希函数接口的多态性。
81.通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数时,服务器中存储有p个不同的鉴权密钥,以及p个鉴权密钥与n个哈希函数之间的对应关系,p为大于1的整数。
82.在本实施例中,p个鉴权密钥与n个哈希函数之间的对应关系,可以为一一对应关系,也可以为多对一的对应关系:即多种鉴权密钥对应一个哈希函数。
83.然后,服务器根据p个鉴权密钥与n个哈希函数之间的对应关系,将接收到的鉴权密钥对应的哈希函数,判断为目标哈希函数。
84.s202、调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值。
85.具体的,在过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数后,服务器调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值。
86.服务器调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值时,传入的参数char*pdata是具体要计算hash值的鉴权密钥,传入的参数ihash*phashfunc是传入的哈希
函数的基类的指针,指向s201中确定的目标哈希函数,而不是只实现一种哈希函数来对传入的数据计算hash值。从而,在本步骤中具体调用的哈希函数是不确定,只有程序运行时,通过传入的指针才能具体知道是调用的哪一个哈希函数,从而实现了将请求客户端的鉴权过程的哈希值计算拆分成多个虚函数去实现。
87.例如,如果phashfunc是类md5的对象,则具体调用md5函数,而如果phashfunc是类crc32的对象,则调用的则crc32函数。因此,其在逆向静态分析其代码时,是无法确定哈希值计算接口calchash中phashfunc

>calchashdata调用的具体函数。同时,即使是在逆向动态调试时,也会由于具体的phashfunc所属对象的不同而调用的具体函数是不同的,增加了调试的复杂度。
88.具体的,如果s201中确定的目标哈希函数为md5函数,则使用md5函数来实现此多态哈希函数接口,通过md5函数计算出hash值,实现方法如下:
89.其中,md5函数来实现此多态哈希函数接口中,定义了一个md5类继承于基类ihash,并实现抽象接口calchashdata,具体实现则是使用md5函数来对p个鉴权密钥进行计算出hash值,pdata为需要加密的数据指针。
90.如果s102中确定的目标哈希函数为crc32函数,则使用crc32函数来实现多态哈希函数接口,通过crc32函数计算出hash值,实现方法如下:
91.其中,crc32函数来实现多态哈希函数接口中,定义了一个crc32类继承于基类ihash,并实现抽象接口calchashdata,具体实现则是使用crc32函数计算出p个鉴权密钥的hash值,pdata为需要计算哈希值的数据。
92.s203、根据唯一标识,从预先存储的哈希库中获取与请求客户端对应的原始哈希值。
93.具体的,在调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值后,服务器根据唯一标识,从预先存储的哈希库中获取与请求客户端对应的原始哈希值。
94.哈希库用于创建哈希表,哈希表可以用于快速查找。哈希表是针对一组条目进行搜索而优化的数据结构,每个条目由唯一key标识。为了提高性能,dpdk哈希要求所有的key值具有与哈希创建时指定的相同字节数。
95.s204、若目标哈希值与原始哈希值一致,则对请求客户端鉴权成功。
96.具体的,在根据唯一标识,从预先存储的哈希库中获取与请求客户端对应的原始哈希值后,若目标哈希值与原始哈希值一致,则对请求客户端鉴权成功。
97.可选的,如图3所示,服务器调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值的方法具体包括:
98.s301、对鉴权密钥执行目标哈希函数的哈希函数运算,以得到目标哈希桶的地址。
99.其中,目标哈希桶与鉴权密钥对应。
100.具体的,哈希桶就是盛放不同key链表的容器(即是哈希表),可以把每个key的位置看作是一个孔,孔里放了一个链表。
101.应理解,使用一个数组来存放记录方法的哈希冲突太多,基于载荷因子的束缚,空间利用率不高,在需要节省空间的情况下,可以用哈希桶来处理哈希冲突。
102.哈希桶是使用一个顺序表来存放具有相同哈希值的key的链表的头节点,利用这个头节点可以找到其它的key。
103.服务器调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值时,可以对鉴权密钥执行目标哈希函数的哈希函数运算,以得到目标哈希桶的地址。
104.s302、根据目标哈希桶的地址,查找目标哈希桶。
105.具体的,在对鉴权密钥执行目标哈希函数的哈希函数运算,以得到目标哈希桶的地址后,服务器可以根据目标哈希桶的地址,查找目标哈希桶。
106.s303、根据鉴权密钥,从目标哈希桶中读取目标哈希值。
107.具体的,在根据目标哈希桶的地址,查找目标哈希桶后,服务器可以根据鉴权密钥,从目标哈希桶中读取目标哈希值。
108.可选的,结合图2,如图4所示,服务器通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数的方法具体包括:
109.s401、读取预先存储的哈希函数与密钥的对应关系,获取与鉴权密钥匹配的目标哈希函数。
110.具体的,服务器通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数时,由于服务器预先存储了哈希函数与密钥的对应关系,因此,服务器可以读取预先存储的哈希函数与密钥的对应关系,获取与鉴权密钥匹配的目标哈希函数。
111.可选的,结合图2,如图5所示,服务器利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权之后,还包括:
112.s501、若目标哈希值与原始哈希值不一致,则向请求客户端发送鉴权失败消息。
113.具体的,服务器利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权之后,若目标哈希值与原始哈希值不一致,说明服务器无法对请求客户端进行鉴权,或者请求客户端为非法客户端。在这种情况下,服务器向请求客户端发送鉴权失败消息。
114.可选的,如图6所示,服务器与请求客户端建立http2通信连接之后,还包括:
115.s601、若未接收到请求客户端的连接响应消息,则统计连接失败次数。
116.其中,连接失败次数用于表示通过http2通信协议向请求客户端发送连接请求消息且未接收到连接响应消息的次数。
117.具体的,在服务器与请求客户端建立http2通信连接之后,若未接收到请求客户端的连接响应消息,则服务器可以统计连接失败次数。
118.s602、若连接失败次数大于或等于连接失败次数阈值,则断开与请求客户端建立的http2通信连接。
119.具体的,在统计连接失败次数后,若连接失败次数大于或等于连接失败次数阈值,则服务器断开与请求客户端建立的http2通信连接。
120.示例性的,在服务器与请求客户端建立http2通信连接之后,服务器可以周期性的向请求客户端发送握手协议消息。相应的,若通信连接正常,则终端会周期性的向服务器发送响应消息。
121.握手协议消息是指主要用来让客户端及服务器确认彼此的身份的一类网络协议。除此之外,为了保护ssl记录封包中传送的数据,握手协议还能协助双方选择连接时所使用
的加密算法、mac算法及相关密钥。在传送应用程序的数据前,必须使用握手协议来完成上述事项。
122.若未接收到请求客户端的连接响应消息,则服务器可以统计连接失败次数。在统计连接失败次数后,若连接失败次数大于或等于连接失败次数阈值,说明请求客户端可能在未来时间段无消息传输。为了保证通信网络的稳定性,服务器可以断开与请求客户端建立的http2通信连接。
123.可选的,如图7所示,服务器与请求客户端建立http2通信连接之后,还包括:
124.s701、接收请求客户端发送的数据传输请求。
125.其中,数据传输请求包括:数据资源包和传输目的地址。
126.s702、响应于数据传输请求,利用http2通信协议,向传输目的地址发送数据资源包。
127.本技术实施例提供一种即时通讯方法,应用于服务器,包括:接收请求客户端发送的通信连接建立请求,其中,通信连接建立请求用于请求建立超文本协议http2的通信连接,通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识;利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权;若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端;接收请求客户端发送的数据流,并将数据流发送至接入请求客户端,其中,数据请用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
128.由上可知,在接收请求客户端发送的用于请求建立超文本协议http2的通信连接建立请求后,由于通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识,因此,服务器可以利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端。后续,服务器接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。其中,数据请求用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
129.现有技术中,服务器采用每一次请求经过三次握手并且完成单次请求就断开的方式,与请求客户端进行通信连接。这样,虽然安全性有一定保证,但是导致了即时通讯的传输效率较低。而本技术中,服务器可以利用哈希函数算法,对请求客户端进行鉴权,并在鉴权成功后与请求客户端建立http2通信连接。这样一来,服务器在保证鉴权安全性的同时,还可以与请求客户端建立http2通信连接。由于http2通信连接具体多路复用、二进制分帧、首部压缩以及服务端推送等特点,因此,本技术实施例在保证鉴权安全性的同时,解决了即时通讯的效率较低的技术问题,提高了即时通讯的效率。
130.需要说明的是,本技术实施例提供的即时通讯方法,执行主体可以为即时通讯装置,或者该即时通讯装置中的用于执行即时通讯方法的控制模块。本技术实施例中以即时通讯装置执行即时通讯方法为例,说明本技术实施例提供的即时通讯装置。
131.需要说明的是,本技术实施例中,上述各个方法附图所示的即时通讯方法均是以
结合本技术实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的即时通讯方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
132.具体请参阅图8,图8为本实施例即时通讯装置基本结构示意图。
133.如图8所示,一种即时通讯装置,包括:
134.接收模块801,用于接收请求客户端发送的通信连接建立请求;通信连接建立请求用于请求建立超文本协议http2的通信连接;通信连接建立请求包括:请求客户端的唯一标识和鉴权密钥;
135.鉴权模块802,用于利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权;
136.处理模块803,用于若鉴权成功,则与请求客户端建立http2通信连接。
137.在一些方式中,鉴权模块802,具体用于:
138.通过多态哈希函数接口,从多个哈希函数中确定出与鉴权密钥匹配的目标哈希函数;
139.调用目标哈希函数,以计算出鉴权密钥对应的目标哈希值;
140.根据唯一标识,从预先存储的哈希库中获取与请求客户端对应的原始哈希值;
141.若目标哈希值与原始哈希值一致,则对请求客户端鉴权成功。
142.在一些方式中,鉴权模块802,具体用于:
143.对鉴权密钥执行目标哈希函数的哈希函数运算,以得到目标哈希桶的地址;目标哈希桶与鉴权密钥对应;
144.根据目标哈希桶的地址,查找目标哈希桶;
145.根据鉴权密钥,从目标哈希桶中读取目标哈希值。
146.在一些方式中,鉴权模块802,具体用于:
147.读取预先存储的哈希函数与密钥的对应关系,获取与鉴权密钥匹配的目标哈希函数。
148.在一些方式中,即时通讯装置还包括:
149.发送模块804,用于若目标哈希值与原始哈希值不一致,则向请求客户端发送鉴权失败消息。
150.在一些方式中,处理模块803,还用于若未接收到请求客户端的连接响应消息,则统计连接失败次数,连接失败次数用于表示通过http2通信协议向请求客户端发送连接请求消息且未接收到连接响应消息的次数;
151.处理模块803,还用于若连接失败次数大于或等于连接失败次数阈值,则断开与请求客户端建立的http2通信连接。
152.在一些方式中,接收模块801,还用于接收请求客户端发送的数据传输请求,其中,数据传输请求包括:数据资源包和传输目的地址;
153.发送模块804,还用于响应于数据传输请求,利用http2通信协议,向传输目的地址发送数据资源包。
154.本技术实施例中的即时通讯装置可以是装置,也可以是终端中的部件、集成电路、
或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra

mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,非移动电子设备可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
155.本技术实施例提供的即时通讯装置能够实现图1至图7的方法实施例中。装置实现的各个过程,为避免重复,这里不再赘述。
156.本实施例中各种实现方式具有的有益效果具体可以参见上述方法实施例中相应实现方式所具有的有益效果,为避免重复,此处不再赘述。
157.本技术实施例提供的即时通讯装置,在接收请求客户端发送的用于请求建立超文本协议http2的通信连接建立请求后,由于通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识,因此,服务器可以利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端。后续,服务器接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。其中,数据请求用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
158.现有技术中,服务器采用每一次请求经过三次握手并且完成单次请求就断开的方式,与请求客户端进行通信连接。这样,虽然安全性有一定保证,但是导致了即时通讯的传输效率较低。而本技术中,服务器可以利用哈希函数算法,对请求客户端进行鉴权,并在鉴权成功后与请求客户端建立http2通信连接。这样一来,服务器在保证鉴权安全性的同时,还可以与请求客户端建立http2通信连接。由于http2通信连接具体多路复用、二进制分帧、首部压缩以及服务端推送等特点,因此,本技术实施例在保证鉴权安全性的同时,解决了即时通讯的效率较低的技术问题,提高了即时通讯的效率。
159.为解决上述技术问题,本发明实施例还提供一种服务器。具体请参阅图9,图9为本实施例服务器基本结构框图。
160.如图9所示,服务器的内部结构示意图。该服务器包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该服务器的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种即时通讯方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种即时通讯方法。该服务器的网络接口用于与终端连接通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
161.本实施方式中处理器用于执行图8中鉴权模块802和处理模块803的具体功能,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器
之间的数据传输。本实施方式中的存储器存储有即时通讯装置中执行所有子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
162.本实施例提供的服务器,在接收请求客户端发送的用于请求建立超文本协议http2的通信连接建立请求后,由于通信连接建立请求包括:请求客户端的唯一标识、鉴权密钥和接入标识,因此,服务器可以利用哈希函数算法,确定预先存储的根据请求客户端的唯一标识对应的原始哈希值,以及和鉴权密钥对应的目标哈希值,并根据原始哈希值和目标哈希值对请求客户端进行鉴权。若鉴权成功,则与请求客户端建立http2通信连接,并根据接入标识对应的路由连接接入请求客户端。后续,服务器接收请求客户端发送的数据流,并将数据流发送至接入请求客户端。其中,数据请求用于表征请求客户端请求信息,数据流由多个数据帧组成,多个数据帧通过对请求信息进行二进制分帧处理得到。
163.由上可知,现有技术中,服务器采用每一次请求经过三次握手并且完成单次请求就断开的方式,与请求客户端进行通信连接。这样,虽然安全性有一定保证,但是导致了即时通讯的传输效率较低。而本技术中,服务器可以利用哈希函数算法,对请求客户端进行鉴权,并在鉴权成功后与请求客户端建立http2通信连接。这样一来,服务器在保证鉴权安全性的同时,还可以与请求客户端建立http2通信连接。由于http2通信连接具体多路复用、二进制分帧、首部压缩以及服务端推送等特点,因此,本技术实施例在保证鉴权安全性的同时,解决了即时通讯的效率较低的技术问题,提高了即时通讯的效率。
164.本发明还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例即时通讯方法的步骤。
165.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
166.本发明还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例即时通讯方法的步骤。
167.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
168.本技术领域技术人员可以理解,本技术中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本技术中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本技术中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
169.以上所述仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜