System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及网络通讯,特别是涉及一种基于socket.io的请求处理方法、装置、设备和介质。
技术介绍
1、socket.io是一种低延迟、双向和基于事件的通信技术,被广泛应用于浏览器/服务器(browser/server,b/s)架构的工业物联网系统中。socket.io主要通过websocket进行通讯,同时进行了增强,在不支持websocket的情况下会自动回退成超文本传输协议(hypertext transfer protocol,http)长轮询,保证通讯正常。
2、一般b/s架构的工业物联网系统通常只会开放一个web端口供用户访问,而socket.io并不能共用该端口,需要单独开放一个端口调用。从用户体验、网络安全等多方面考虑,socket.io端口不应该暴露出去,这时候就需要网络代理来实现。目前的方案中,通常会加装一个代理服务器(nginx)来解决这个问题。但该方案会占用硬件资源,导致硬件成本的增加。而且在某些场景下,并不支持加装代理服务器。
3、可见,如何在不暴露socket.io端口并且不增加硬件成本的情况下实现socket.io的代理功能,是本领域技术人员需要解决的问题。
技术实现思路
1、本专利技术实施例的目的是提供一种基于socket.io的请求处理方法、装置、设备和介质,可以在不暴露socket.io端口并且不增加硬件成本的情况下实现socket.io的代理功能。
2、为解决上述技术问题,本专利技术实施例提供一种基于s
3、对web端口的用户访问请求进行拦截;
4、在所述用户访问请求所属的请求类型为websocket请求的情况下,基于创建的websocket服务端和websocket客户端,将所述用户访问请求转发至socket.io端口所连接的socket.io服务器;
5、在所述用户访问请求所属的请求类型为http长轮询请求的情况下,基于http代理技术将所述用户访问请求转发至socket.io端口所连接的socket.io服务器,以便于所述socket.io服务器对所述用户访问请求进行处理。
6、一方面,在对web端口的用户访问请求进行拦截之后,还包括:
7、判断所述用户访问请求是否携带有socket.io请求标识;
8、在所述用户访问请求携带有socket.io请求标识的情况下,判断所述用户访问请求的请求头是否包含websocket请求标识;
9、在所述用户访问请求的请求头包含websocket请求标识的情况下,判定所述用户访问请求的请求类型为websocket请求;
10、在所述用户访问请求的请求头不包含websocket请求标识的情况下,判定所述用户访问请求的请求类型为http长轮询请求。
11、一方面,还包括:
12、在所述用户访问请求未携带socket.io请求标识的情况下,放行所述用户访问请求。
13、一方面,在放行所述用户访问请求之后,还包括:
14、接收web服务器反馈的响应信息,并将所述响应信息反馈至与所述web端口连接的用户终端。
15、一方面,基于创建的websocket服务端和websocket客户端,将所述用户访问请求转发至socket.io端口所连接的socket.io服务器包括:
16、创建与所述web端口连接的websocket服务端,以便于通过所述websocket服务端接收所述用户访问请求;
17、创建与所述socket.io端口连接的websocket客户端,以便于通过websocket客户端接收所述websocket服务端传输的用户访问请求,并将所述用户访问请求转发至socket.io端口所连接的socket.io服务器。
18、一方面,在基于创建的websocket服务端和websocket客户端,将所述用户访问请求转发至socket.io端口所连接的socket.io服务器之后,还包括:
19、通过所述websocket客户端接收所述socket.io服务器传输的响应信息;
20、将所述响应信息通过所述websocket服务端反馈至与所述web端口连接的用户终端。
21、一方面,基于http代理技术将所述用户访问请求转发至socket.io端口所连接的socket.io服务器包括:
22、利用http代理技术建立与socket.io服务器进行数据交互的通道;
23、将所述用户访问请求通过所述通道转发至socket.io端口所连接的socket.io服务器。
24、本专利技术实施例还提供了一种基于socket.io的请求处理装置,包括拦截单元、第一转发单元和第二转发单元;
25、所述拦截单元,用于对web端口的用户访问请求进行拦截;
26、所述第一转发单元,用于在所述用户访问请求所属的请求类型为websocket请求的情况下,基于创建的websocket服务端和websocket客户端,将所述用户访问请求转发至socket.io端口所连接的socket.io服务器;
27、所述第二转发单元,用于在所述用户访问请求所属的请求类型为http长轮询请求的情况下,基于http代理技术将所述用户访问请求转发至socket.io端口所连接的socket.io服务器,以便于所述socket.io服务器对所述用户访问请求进行处理。
28、一方面,还包括第一判断单元、第二判断单元、第一判定单元和第二判定单元;
29、所述第一判断单元,用于判断所述用户访问请求是否携带有socket.io请求标识;
30、所述第二判断单元,用于在所述用户访问请求携带有socket.io请求标识的情况下,判断所述用户访问请求的请求头是否包含websocket请求标识;
31、所述第一判定单元,用于在所述用户访问请求的请求头包含websocket请求标识的情况下,判定所述用户访问请求的请求类型为websocket请求;
32、所述第二判定单元,用于在所述用户访问请求的请求头不包含websocket请求标识的情况下,判定所述用户访问请求的请求类型为http长轮询请求。
33、一方面,还包括放行单元;
34、所述放行单元,用于在所述用户访问请求未携带socket.io请求标识的情况下,放行所述用户访问请求。
35、一方面,还包括第一接收单元和第一反馈单元;
36、所述第一接收单元,用于接收web服务器反馈的响应信息;
37、所述第一反馈单元,用于将所述响应信息反馈至与所述web端口连接的用户终端。
38、一方面,所述第一转发单元包括第一创建子单元和第二创建子单元;
39、所述第一创建子单元本文档来自技高网...
【技术保护点】
1.一种基于Socket.IO的请求处理方法,其特征在于,包括:
2.根据权利要求1所述的基于Socket.IO的请求处理方法,其特征在于,在对web端口的用户访问请求进行拦截之后,还包括:
3.根据权利要求2所述的基于Socket.IO的请求处理方法,其特征在于,还包括:
4.根据权利要求3所述的基于Socket.IO的请求处理方法,其特征在于,在放行所述用户访问请求之后,还包括:
5.根据权利要求1所述的基于Socket.IO的请求处理方法,其特征在于,基于创建的websocket服务端和websocket客户端,将所述用户访问请求转发至Socket.IO端口所连接的Socket.IO服务器包括:
6.根据权利要求5所述的基于Socket.IO的请求处理方法,其特征在于,在基于创建的websocket服务端和websocket客户端,将所述用户访问请求转发至Socket.IO端口所连接的Socket.IO服务器之后,还包括:
7.根据权利要求1所述的基于Socket.IO的请求处理方法,其特征在于,基于H
8.一种基于Socket.IO的请求处理装置,其特征在于,包括拦截单元、第一转发单元和第二转发单元;
9.一种基于Socket.IO的请求处理设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述基于Socket.IO的请求处理方法的步骤。
...【技术特征摘要】
1.一种基于socket.io的请求处理方法,其特征在于,包括:
2.根据权利要求1所述的基于socket.io的请求处理方法,其特征在于,在对web端口的用户访问请求进行拦截之后,还包括:
3.根据权利要求2所述的基于socket.io的请求处理方法,其特征在于,还包括:
4.根据权利要求3所述的基于socket.io的请求处理方法,其特征在于,在放行所述用户访问请求之后,还包括:
5.根据权利要求1所述的基于socket.io的请求处理方法,其特征在于,基于创建的websocket服务端和websocket客户端,将所述用户访问请求转发至socket.io端口所连接的socket.io服务器包括:
6.根据权利要求5所述的基于socket.io的请求处理方法,其特征在于,...
【专利技术属性】
技术研发人员:方偕廉,代晓松,黄云俤,张志勇,倪军,
申请(专利权)人:杭州安脉盛智能技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。