基于Electron框架的专线客户端实现方法和系统与流程

未命名 10-09 阅读:81 评论:0

基于electron框架的专线客户端实现方法和系统
技术领域
1.本发明涉及electron技术领域,具体地,涉及一种基于electron框架的专线客户端实现方法和系统。


背景技术:

2.目前专线客户端主要采用.net技术实现,但是该技术存在跨平台支持性较弱的问题,因为依赖框架较多,安装和维护成本较高,同时还需要用户安装相应的.net framework运行库,占用硬件资源较多。
3.使用electron技术实现专线客户端,则可以解决上述问题。electron客户端可以在几乎所有操作系统上运行,降低了安装和维护成本,并占用更少的硬件资源。因此,基于electron技术的专线客户端具有更好的跨平台适配性和用户体验,可以满足更广泛的用户需求。
4.专利文献cn114722366a(申请号:cn202111644805.6)公开了一种基于electron框架实现的云桌面客户端多因素认证的方法及系统,客户需要在终端登录云桌面使,首先通过云桌面客户端从云桌面管理端获取登录步骤信息;在信息安全要求较高的情况下,在云桌面管理端配置多因素认证,用户既需要通过用户名、密码认证,同时也需要使用人脸识别,或者人脸识别和指纹进行二次认证。然而该专利没有采用反向代理方式,无法保证将请求转发到应用服务器上的高性能、稳定性和安全性。


技术实现要素:

5.针对现有技术中的缺陷,本发明的目的是提供一种基于electron框架的专线客户端实现方法和系统。
6.根据本发明提供的基于electron框架的专线客户端实现方法,包括:
7.步骤1:在客户端启动时,检测是否有配置文件位于运行exe程序所处的同级目录下,若存在配置文件,则执行步骤2进行相应操作,否则结束流程;
8.步骤2:使用electron框架的会话中的onbeforerequest方法进行请求劫持;
9.步骤3:通过electron框架对原始请求进行改写;
10.步骤4:用户侧专线服务器收到客户端改写的请求后,发送给服务端专线服务器;
11.步骤5:服务端专线服务器使用nginx反向代理,将用户侧请求还原并向对应应用服务器发起最终请求;
12.步骤6:将最终请求的响应结果原路径返回,并增加响应的跨域头。
13.优选的,原始请求格式为https://a.*/$,其中,a为域名,包括www或二级域名;$为请求路径后面的部分;
14.若用户侧专线服务器ip地址为1.1.1.1,则客户端改写后请求http://1.1.1.1/a/$;
15.若服务侧专线服务器ip地址为2.2.2.2,则用户侧请求为http://2.2.2.2/a/$;
16.将用户侧请求http://2.2.2.2/a/$还原并向对应应用服务器发起请求,若对应应用服务器地址为3.3.3.3,则发送最终请求https://3.3.3.3/$。
17.优选的,所述步骤2包括:当electron框架准备发送一个网络请求时,先尝试匹配会话中注册的onbeforerequest的回调函数;若能匹配到,则electron框架暂停正在处理的请求,并将请求详情传递给回调函数;在回调函数中对请求进行改写处理,然后决定继续发送请求还是中止请求并且返回自定义的响应内容。
18.优选的,所述步骤3包括:
19.步骤3.1:将原始请求中域名地址部分.*改写为用户侧专线服务器的ip地址,得到1.1.1.1;
20.步骤3.2:将协议从https改成http,得到http://1.1.1.1;
21.步骤3.3:按照约定的规则,将a拼接到ip之后,再补齐$,得到http://1.1.1.1/a/$;
22.步骤3.4:回调函数中设置重定向地址为http://1.1.1.1/a/$,再发出请求。
23.优选的,所述步骤5包括:
24.步骤5.1:根据后缀/a,找到对应应用服务器地址,得到3.3.3.3;
25.步骤5.2:将协议从http转为https,得到https://3.3.3.3;
26.步骤5.3:补齐$,得到https://3.3.3.3/$。
27.根据本发明提供的基于electron框架的专线客户端实现系统,包括:
28.模块m1:在客户端启动时,检测是否有配置文件位于运行exe程序所处的同级目录下,若存在配置文件,则触发模块m2进行相应操作,否则结束流程;
29.模块m2:使用electron框架的会话中的onbeforerequest方法进行请求劫持;
30.模块m3:通过electron框架对原始请求进行改写;
31.模块m4:用户侧专线服务器收到客户端改写的请求后,发送给服务端专线服务器;
32.模块m5:服务端专线服务器使用nginx反向代理,将用户侧请求还原并向对应应用服务器发起最终请求;
33.模块m6:将最终请求的响应结果原路径返回,并增加响应的跨域头。
34.优选的,原始请求格式为https://a.*/$,其中,a为域名,包括www或二级域名;$为请求路径后面的部分;
35.若用户侧专线服务器ip地址为1.1.1.1,则客户端改写后请求http://1.1.1.1/a/$;
36.若服务侧专线服务器ip地址为2.2.2.2,则用户侧请求为http://2.2.2.2/a/$;
37.将用户侧请求http://2.2.2.2/a/$还原并向对应应用服务器发起请求,若对应应用服务器地址为3.3.3.3,则发送最终请求https://3.3.3.3/$。
38.优选的,所述模块m2包括:当electron框架准备发送一个网络请求时,先尝试匹配会话中注册的onbeforerequest的回调函数;若能匹配到,则electron框架暂停正在处理的请求,并将请求详情传递给回调函数;在回调函数中对请求进行改写处理,然后决定继续发送请求还是中止请求并且返回自定义的响应内容。
39.优选的,所述模块m3包括:
40.模块m3.1:将原始请求中域名地址部分.*改写为用户侧专线服务器的ip地址,得
到1.1.1.1;
41.模块m3.2:将协议从https改成http,得到http://1.1.1.1;
42.模块m3.3:按照约定的规则,将a拼接到ip之后,再补齐$,得到http://1.1.1.1/a/$;
43.模块m3.4:回调函数中设置重定向地址为http://1.1.1.1/a/$,再发出请求。
44.优选的,所述模块m5包括:
45.模块m5.1:根据后缀/a,找到对应应用服务器地址,得到3.3.3.3;
46.模块m5.2:将协议从http转为https,得到https://3.3.3.3;
47.模块m5.3:补齐$,得到https://3.3.3.3/$。
48.与现有技术相比,本发明具有如下的有益效果:
49.(1)本发明通过采用electron的session模块中onbeforerequest方法劫持客户端请求,从而达成修改请求的目的,而传统.net需要使用额外模块和http handler,编写较为繁琐;
50.(2)本发明通过采用反向代理方式,将请求转发到应用服务器上,从而实现了专线服务器向应用服务器发起请求的目的,具体使用nginx反向代理,能够保证高性能、稳定性和安全性,性能很强。
附图说明
51.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
52.图1为网络链路图;
53.图2为客户端劫持初始化流程图。
具体实施方式
54.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
55.实施例1:
56.本发明提供了一种基于electron框架的专线客户端实现方法,electron客户端在发出请求前,劫持请求并根据特定规则改写请求,然后将其发送到专线服务器;专线服务器收到请求后,会按照预先设定的规则还原请求,并将其转发至应用服务器;最终,专线服务器会将响应原路返回给客户端,以此完成整个请求-响应过程。
57.具体的,包括如下步骤:
58.步骤1:在客户端启动时,检测是否有配置文件位于运行exe程序所处的同级目录下;如果不存在配置文件,则跳过后续步骤;如果存在配置文件,则执行步骤2进行相应操作;
59.步骤2:使用electron的会话模块session中的onbeforerequest方法进行请求劫持。原始请求格式为https://a.*/$,其中,a为域名,可以是www或二级域名;$为请求路径后
面的部分;
60.步骤2.1:当electron准备发送一个网络请求时,它会先尝试匹配会话中注册的onbeforerequest的回调函数;
61.步骤2.2:如果能够匹配到,则electron会暂停正在处理的请求,并将请求详情传递给回调函数;
62.步骤2.3:在回调函数中对请求进行改写处理,然后决定继续发送请求还是中止请求并且返回自定义的响应内容。
63.步骤3:通过electron对原始请求进行改写,假设用户侧专线服务器ip地址为1.1.1.1,则客户端改写后请求http://1.1.1.1/a/$。
64.所述步骤3包括如下步骤:
65.步骤3.1:将原始请求中域名地址部分.*改写为用户侧专线服务器的ip地址,即1.1.1.1;
66.步骤3.2:将协议从https改成http,即http://1.1.1.1;
67.步骤3.3:按照约定的规则,将a拼接到ip之后,再补齐$,即http://1.1.1.1/a/$;
68.步骤3.4:回调函数中设置重定向地址为http://1.1.1.1/a/$,再发出请求。
69.步骤4:用户侧专线服务器收到客户端改写后请求后,发送给服务端专线服务器,假设服务侧专线服务器ip地址为2.2.2.2,则用户侧请求为http://2.2.2.2/a/$;
70.步骤5:服务端专线服务器使用nginx反向代理,将用户侧请求http://2.2.2.2/a/$还原并向对应应用服务器发起请求,假设对应应用服务器地址为3.3.3.3,则发送最终请求https://3.3.3.3/$。
71.所述步骤5包括如下步骤:
72.步骤5.1:根据后缀/a,找到对应应用服务器地址,即3.3.3.3;
73.步骤5.2:将协议从http转为https,即https://3.3.3.3;
74.步骤5.3:补齐$,即https://3.3.3.3/$;
75.步骤6:将最终请求的响应结果原路径返回,并增加响应的跨域头。
76.如图1,为网络链路图,包括如下步骤:用户发起请求;electron客户端劫持并改写请求,将请求发送到专线对接服务器a;专线对接服务器a通过运营商的服务将请求发送至专线对接服务器b;专线对接服务器b向nginx发送请求;nginx将请求转发至最终应用服务器;应用服务器将响应返回,数据沿着上述链路原路返回。
77.如图2,为客户端劫持初始化流程图,包括如下步骤:客户端启动时,检测有没有配置专线,若有则开始配置劫持规则,否则停止配置劫持规则,程序结束;判断文件内是否配置了独立的域名,若有则用该域名替换掉默认域名,修改配置规则,否则使用默认域名,即使用默认配置规则。
78.实施例2:
79.本发明还提供一种基于electron框架的专线客户端实现系统,所述基于electron框架的专线客户端实现系统可以通过执行所述基于electron框架的专线客户端实现方法的流程步骤予以实现,即本领域技术人员可以将所述基于electron框架的专线客户端实现方法理解为所述基于electron框架的专线客户端实现系统的优选实施方式。
80.根据本发明提供的基于electron框架的专线客户端实现系统,包括:模块m1:在客
户端启动时,检测是否有配置文件位于运行exe程序所处的同级目录下,若存在配置文件,则触发模块m2进行相应操作,否则结束流程;模块m2:使用electron框架的会话中的onbeforerequest方法进行请求劫持;模块m3:通过electron框架对原始请求进行改写;模块m4:用户侧专线服务器收到客户端改写的请求后,发送给服务端专线服务器;模块m5:服务端专线服务器使用nginx反向代理,将用户侧请求还原并向对应应用服务器发起最终请求;模块m6:将最终请求的响应结果原路径返回,并增加响应的跨域头。
81.原始请求格式为https://a.*/$,其中,a为域名,包括www或二级域名;$为请求路径后面的部分;若用户侧专线服务器ip地址为1.1.1.1,则客户端改写后请求http://1.1.1.1/a/$;若服务侧专线服务器ip地址为2.2.2.2,则用户侧请求为http://2.2.2.2/a/$;将用户侧请求http://2.2.2.2/a/$还原并向对应应用服务器发起请求,若对应应用服务器地址为3.3.3.3,则发送最终请求https://3.3.3.3/$。
82.所述模块m2包括:当electron框架准备发送一个网络请求时,先尝试匹配会话中注册的onbeforerequest的回调函数;若能匹配到,则electron框架暂停正在处理的请求,并将请求详情传递给回调函数;在回调函数中对请求进行改写处理,然后决定继续发送请求还是中止请求并且返回自定义的响应内容。
83.所述模块m3包括:模块m3.1:将原始请求中域名地址部分.*改写为用户侧专线服务器的ip地址,得到1.1.1.1;模块m3.2:将协议从https改成http,得到http://1.1.1.1;模块m3.3:按照约定的规则,将a拼接到ip之后,再补齐$,得到http://1.1.1.1/a/$;模块m3.4:回调函数中设置重定向地址为http://1.1.1.1/a/$,再发出请求。
84.所述模块m5包括:模块m5.1:根据后缀/a,找到对应应用服务器地址,得到3.3.3.3;模块m5.2:将协议从http转为https,得到https://3.3.3.3;模块m5.3:补齐$,得到https://3.3.3.3/$。
85.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
86.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。

技术特征:
1.一种基于electron框架的专线客户端实现方法,其特征在于,包括:步骤1:在客户端启动时,检测是否有配置文件位于运行exe程序所处的同级目录下,若存在配置文件,则执行步骤2进行相应操作,否则结束流程;步骤2:使用electron框架的会话中的onbeforerequest方法进行请求劫持;步骤3:通过electron框架对原始请求进行改写;步骤4:用户侧专线服务器收到客户端改写的请求后,发送给服务端专线服务器;步骤5:服务端专线服务器使用nginx反向代理,将用户侧请求还原并向对应应用服务器发起最终请求;步骤6:将最终请求的响应结果原路径返回,并增加响应的跨域头。2.根据权利要求1所述的基于electron框架的专线客户端实现方法,其特征在于,原始请求格式为https://a.*/$,其中,a为域名,包括www或二级域名;$为请求路径后面的部分;若用户侧专线服务器ip地址为1.1.1.1,则客户端改写后请求http://1.1.1.1/a/$;若服务侧专线服务器ip地址为2.2.2.2,则用户侧请求为http://2.2.2.2/a/$;将用户侧请求http://2.2.2.2/a/$还原并向对应应用服务器发起请求,若对应应用服务器地址为3.3.3.3,则发送最终请求https://3.3.3.3/$。3.根据权利要求2所述的基于electron框架的专线客户端实现方法,其特征在于,所述步骤2包括:当electron框架准备发送一个网络请求时,先尝试匹配会话中注册的onbeforerequest的回调函数;若能匹配到,则electron框架暂停正在处理的请求,并将请求详情传递给回调函数;在回调函数中对请求进行改写处理,然后决定继续发送请求还是中止请求并且返回自定义的响应内容。4.根据权利要求2所述的基于electron框架的专线客户端实现方法,其特征在于,所述步骤3包括:步骤3.1:将原始请求中域名地址部分.*改写为用户侧专线服务器的ip地址,得到1.1.1.1;步骤3.2:将协议从https改成http,得到http://1.1.1.1;步骤3.3:按照约定的规则,将a拼接到ip之后,再补齐$,得到http://1.1.1.1/a/$;步骤3.4:回调函数中设置重定向地址为http://1.1.1.1/a/$,再发出请求。5.根据权利要求2所述的基于electron框架的专线客户端实现方法,其特征在于,所述步骤5包括:步骤5.1:根据后缀/a,找到对应应用服务器地址,得到3.3.3.3;步骤5.2:将协议从http转为https,得到https://3.3.3.3;步骤5.3:补齐$,得到https://3.3.3.3/$。6.一种基于electron框架的专线客户端实现系统,其特征在于,包括:模块m1:在客户端启动时,检测是否有配置文件位于运行exe程序所处的同级目录下,若存在配置文件,则触发模块m2进行相应操作,否则结束流程;模块m2:使用electron框架的会话中的onbeforerequest方法进行请求劫持;模块m3:通过electron框架对原始请求进行改写;模块m4:用户侧专线服务器收到客户端改写的请求后,发送给服务端专线服务器;模块m5:服务端专线服务器使用nginx反向代理,将用户侧请求还原并向对应应用服务
器发起最终请求;模块m6:将最终请求的响应结果原路径返回,并增加响应的跨域头。7.根据权利要求6所述的基于electron框架的专线客户端实现系统,其特征在于,原始请求格式为https://a.*/$,其中,a为域名,包括www或二级域名;$为请求路径后面的部分;若用户侧专线服务器ip地址为1.1.1.1,则客户端改写后请求http://1.1.1.1/a/$;若服务侧专线服务器ip地址为2.2.2.2,则用户侧请求为http://2.2.2.2/a/$;将用户侧请求http://2.2.2.2/a/$还原并向对应应用服务器发起请求,若对应应用服务器地址为3.3.3.3,则发送最终请求https://3.3.3.3/$。8.根据权利要求7所述的基于electron框架的专线客户端实现系统,其特征在于,所述模块m2包括:当electron框架准备发送一个网络请求时,先尝试匹配会话中注册的onbeforerequest的回调函数;若能匹配到,则electron框架暂停正在处理的请求,并将请求详情传递给回调函数;在回调函数中对请求进行改写处理,然后决定继续发送请求还是中止请求并且返回自定义的响应内容。9.根据权利要求7所述的基于electron框架的专线客户端实现系统,其特征在于,所述模块m3包括:模块m3.1:将原始请求中域名地址部分.*改写为用户侧专线服务器的ip地址,得到1.1.1.1;模块m3.2:将协议从https改成http,得到http://1.1.1.1;模块m3.3:按照约定的规则,将a拼接到ip之后,再补齐$,得到http://1.1.1.1/a/$;模块m3.4:回调函数中设置重定向地址为http://1.1.1.1/a/$,再发出请求。10.根据权利要求7所述的基于electron框架的专线客户端实现系统,其特征在于,所述模块m5包括:模块m5.1:根据后缀/a,找到对应应用服务器地址,得到3.3.3.3;模块m5.2:将协议从http转为https,得到https://3.3.3.3;模块m5.3:补齐$,得到https://3.3.3.3/$。

技术总结
本发明提供了一种基于Electron框架的专线客户端实现方法和系统,包括:在客户端启动时,检测是否有配置文件位于运行exe程序所处的同级目录下;使用Electron框架的会话中的onBeforeRequest方法进行请求劫持;通过Electron框架对原始请求进行改写;用户侧专线服务器收到客户端改写的请求后,发送给服务端专线服务器;服务端专线服务器使用nginx反向代理,将用户侧请求还原并向对应应用服务器发起最终请求;将最终请求的响应结果原路径返回,并增加响应的跨域头。本发明使用反向代理,实现了专线服务器向应用服务器发起请求的目的,能够保证高性能、稳定性和安全性,性能很强。强。强。


技术研发人员:刘昌灵 李耀 俞申莉
受保护的技术使用者:上海基玉远达信息科技股份有限公司
技术研发日:2023.06.21
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐