适配制造技术

技术编号:39677001 阅读:16 留言:0更新日期:2023-12-11 18:43
本发明专利技术公开了适配

【技术实现步骤摘要】
适配VSCode插件的gRPC多类型消息转发的方法


[0001]本专利技术涉及软件开发
,尤其涉及到使用到
webview
,且对流式传输以及双向传输都有需求的消息交互
,具体的说,是一种适配
VSCode
插件的
gRPC
多类型消息转发的方法


技术介绍

[0002]在现代
IDE(Integrated Development Environment
,集成开发环境
)
的发展前景下,
VS Code
成为了
IDE
行业中的领头羊,开发者可以通过其插件拓展系统开发专属于自己业务需求的插件或程序,来使其进一步适应于各种场景,满足各种形式的开发需求

在插件开发过程中,传统的
HTTP
请求对于要求快速灵活请求的
IDE
定制或插件开发并不是很契合,其单调的单向请求响应模型以及相对于其他轻量级交互协议较弱的性能更成为了在
IDE
定制开发中的极大阻碍


gRPC
作为一种现代开源高性能过程调用轻量级框架,其基于
HTTP 2.0
协议的双向流式传输以及多种序列化协议的支持使其成为了一种更为适合
IDE
定制开发的交互协议

另外,其独有的
protocol Buffer
语言平台中立机制可以保证数据前后端共用一套数据描述方式,降低了双方沟通的成本,从技术上保证了接口数据类型信息的即时性,避免了前后端因数据结构以及文档更新滞后性造成的诸多问题


gRPC
相对于
HTTP
也存在不少痛点

例如无法做到像
HTTP
那样的广泛适配性,无法做到开箱即用

对各平台不同的技术实现方案的需求也成为了应用其到跨平台
IDE
中一个较大的痛点

尤其对于
Web
,因为浏览器目前没有办法提供完整可控制的
HTTP 2.0
,因此所必要的进一步的转发方案对于跨平台部署和开发都造成了相当大的障碍

如何在插件开发及其内嵌
web
应用中,在保证跨平台的情况下,做到对普通请求,服务端推送,流式传输,双向流式传输,断线重连等多种功能的支持,达到提高
IDE
开发中消息交互的效率,降低开发成本的目的,目前尚没有一种可行的方法


技术实现思路

[0003]本专利技术的目的在于提供一种适配
VSCode
插件的
gRPC
多类型消息转发的方法,用于解决现有技术中无法在插件开发及其内嵌
web
应用中,在保证跨平台的情况下,做到对普通请求,服务端推送,流式传输,双向流式传输,断线重连等多种功能的支持的问题

[0004]本专利技术通过下述技术方案解决上述问题:
[0005]一种适配
VSCode
插件的
gRPC
多类型消息转发的方法,包括:
[0006]步骤
S100、
在选定的客户端环境
(
如内嵌
webview
,插件环境或其他
JS
类似环境
)
中实现一组用于发送请求的函数
(
此函数使用的方式类似于普通
web
客户端的请求函数,其中包括请求的路径,请求的参数等消息
)
通过该函数收集客户端的请求的路径

参数和数据,添加类型和时间戳后将整个请求缓存并进行转发,以便后续步骤使用,实现客户端的请求信息可以完整无误地传递到
iframe
,这样就可以在下一步骤中进行转发,防止客户端发起异常的,无法控制的请求数据;
[0007]在使用者层面来说,此函数为了与普通
web
客户端的使用方式一致,采用常用的
Promise
异步函数的方式或者返回一个事件监听对象的方式

另外在此步骤还可以对请求信息进行校验,增加时间戳来支持并发,添加打印日志便于调试等功能;
[0008]步骤
S200、
获取请求的路径

参数,类型后,
webview
环境下通过
iframe message
机制进行消息筛选与转发,通过内置标识进行筛选并进行双向转发,使其消息能正常到达
VSCode
插件端代码;
[0009]这步骤实现将客户端发起的
message
转发给插件端,将插件端发起的
message
转发给客户端,通过类型区分这两类信息或其他请求类型的信息

在此步骤中,判定为客户端发起的请求将会调取
VSCode
插件开发系统提供的
API
传递给插件端,判定为插件端返回的响应函数则会通过
iframe message
机制中的消息传递函数转发给
webview。
从而实现两种信息的中转与转发

[0010]步骤
S300、
插件端获取转发的请求的路径

参数和类型,按照约定标准对接收到的消息进行解析和格式化,提取出所有
gRPC
所需要的请求信息并采用标准的
gRPC Node.JS
请求流程发起
gRPC
请求,最后将响应结果封装成与步骤
S100
中的请求对应的格式,分别根据不同的函数类型进行消息封装与消息转发;
[0011]这一步骤将原来
web
发起
gRPC
的场景巧妙地转化为了
Node.JS
发起
gRPC
请求,具有以下优势:
1)Node.JS
不需要像浏览器
web
技术栈那样考虑各个浏览器对于
HTTP 2.0
技术的完全支持和控制,不需要涉及到请求代理转发,也就不涉及现存方案中请求代理跨平台部署困难的痛点
。2)Node.JS
原本就是
VSCode
插件开发的宿主环境技术栈,利用其进行
gRPC
请求合情合理,且没有多余的技术债务与性能负担

[0012]步骤
S400、
客户端环境接收到所需的响应消息与参数,根据之前所调用的函数类型,分别转配为不同的响应内容进行返回

[0013]步骤
S300
中,为了支持并发请求转发,在消息转发过程中加上一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种适配
VSCode
插件的
gRPC
多类型消息转发的方法,其特征在于,包括:步骤
S100、
在选定的客户端环境中实现一组用于发送请求的函数,通过该函数收集客户端的请求的路径

参数和数据,添加类型和时间戳后将整个请求缓存并进行转发,实现客户端的请求信息可以完整无误地传递到
iframe
;步骤
S200、
获取请求的路径

参数,类型后,
webview
环境下通过
iframe message
机制进行消息筛选与转发,使其消息能正常到达
VSCode
插件端代码;步骤
S300、
插件端获取转发的请求的路径

参数和类型,按照约定标准对接收到的消息进行解析和格式化,提取出所有
gRPC
所需要的请求信息并采用标准的
gRPC Node.JS
请求流程发起
gRPC
请求,最后将响应结果封装成与步骤
S1...

【专利技术属性】
技术研发人员:舒柏乔
申请(专利权)人:四川启睿克科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1