zizifn / edgetunnel

Running V2ray inside edge/serverless runtime
GNU General Public License v2.0
6.76k stars 21.96k forks source link

有没有考虑支持gRPC协议 #99

Closed Fangliding closed 1 year ago

Fangliding commented 1 year ago

deno depoly好像是有h2支持的 那应该也可以建立grpc连接吧 多路复用应该可以显著降低request count 顺便想问一下能不能支持ws 0-rtt()

zizifn commented 1 year ago

理论上可以,但是 deno 木有成熟的grpc server。。这就很难办了。关于 ws 0rtt,你让我理解下,这个是什么。。

Fangliding commented 1 year ago

理论上可以,但是 deno 木有成熟的grpc server。。这就很难办了。关于 ws 0rtt,你让我理解下,这个是什么。。

ws有一个建立http连接再upgrade成websocket的过程 这个过程会消耗一个RTT(每建立一次连接 服务器和客户端多通讯一次) ws 0-rtt是在这个升级的请求里附带一些请求数据 相当没多消耗时间 在xray这个功能服务端是默认启用的 客户端启用方法是在路径后加 ?ed=2048 v2fly的文档在这里 https://www.v2fly.org/v5/config/stream/websocket.html#websocket-stream 当earlyDataHeaderName设置成Sec-WebSocket-Protocol时可以与xray通用

zizifn commented 1 year ago

理论上可以,但是 deno 木有成熟的grpc server。。这就很难办了。关于 ws 0rtt,你让我理解下,这个是什么。。

ws有一个建立http连接再upgrade成websocket的过程 这个过程会消耗一个RTT(每建立一次连接 服务器和客户端多通讯一次) ws 0-rtt是在这个升级的请求里附带一些请求数据 相当没多消耗时间 在xray这个功能服务端是默认启用的 客户端启用方法是在路径后加 ?ed=2048 v2fly的文档在这里 https://www.v2fly.org/v5/config/stream/websocket.html#websocket-stream 当earlyDataHeaderName设置成Sec-WebSocket-Protocol时可以与xray通用

我有时间细细看下,如果 ws 0rtt 是标准,deno 应该默认支持。如果你有时间,你试试在客户的启用下?

Fangliding commented 1 year ago

相关的实现代码

理论上可以,但是 deno 木有成熟的grpc server。。这就很难办了。关于 ws 0rtt,你让我理解下,这个是什么。。

ws有一个建立http连接再upgrade成websocket的过程 这个过程会消耗一个RTT(每建立一次连接 服务器和客户端多通讯一次) ws 0-rtt是在这个升级的请求里附带一些请求数据 相当没多消耗时间 在xray这个功能服务端是默认启用的 客户端启用方法是在路径后加 ?ed=2048 v2fly的文档在这里 https://www.v2fly.org/v5/config/stream/websocket.html#websocket-stream 当earlyDataHeaderName设置成Sec-WebSocket-Protocol时可以与xray通用

我有时间细细看下,如果 ws 0rtt 是标准,deno 应该默认支持。如果你有时间,你试试在客户的启用下?

我试过了不行 Sec-Websocket-Protocol虽然是标准 但是没指定它是干这个的 这是v2fly相关的实现代码 https://github.com/v2fly/v2ray-core/blob/3ef7feaeaf737d05c5a624c580633b7ce0f0f1be/transport/internet/websocket/hub.go

zizifn commented 1 year ago

相关的实现代码

理论上可以,但是 deno 木有成熟的grpc server。。这就很难办了。关于 ws 0rtt,你让我理解下,这个是什么。。

ws有一个建立http连接再upgrade成websocket的过程 这个过程会消耗一个RTT(每建立一次连接 服务器和客户端多通讯一次) ws 0-rtt是在这个升级的请求里附带一些请求数据 相当没多消耗时间 在xray这个功能服务端是默认启用的 客户端启用方法是在路径后加 ?ed=2048 v2fly的文档在这里 https://www.v2fly.org/v5/config/stream/websocket.html#websocket-stream 当earlyDataHeaderName设置成Sec-WebSocket-Protocol时可以与xray通用

我有时间细细看下,如果 ws 0rtt 是标准,deno 应该默认支持。如果你有时间,你试试在客户的启用下?

我试过了不行 Sec-Websocket-Protocol虽然是标准 但是没指定它是干这个的 这是v2fly相关的实现代码 https://github.com/v2fly/v2ray-core/blob/3ef7feaeaf737d05c5a624c580633b7ce0f0f1be/transport/internet/websocket/hub.go

我的,我研究下。看看可不可以实现。另外 ws 0rtt 在 worker 反代下工作吗?

Fangliding commented 1 year ago

相关的实现代码

理论上可以,但是 deno 木有成熟的grpc server。。这就很难办了。关于 ws 0rtt,你让我理解下,这个是什么。。

ws有一个建立http连接再upgrade成websocket的过程 这个过程会消耗一个RTT(每建立一次连接 服务器和客户端多通讯一次) ws 0-rtt是在这个升级的请求里附带一些请求数据 相当没多消耗时间 在xray这个功能服务端是默认启用的 客户端启用方法是在路径后加 ?ed=2048 v2fly的文档在这里 https://www.v2fly.org/v5/config/stream/websocket.html#websocket-stream 当earlyDataHeaderName设置成Sec-WebSocket-Protocol时可以与xray通用

我有时间细细看下,如果 ws 0rtt 是标准,deno 应该默认支持。如果你有时间,你试试在客户的启用下?

我试过了不行 Sec-Websocket-Protocol虽然是标准 但是没指定它是干这个的 这是v2fly相关的实现代码 https://github.com/v2fly/v2ray-core/blob/3ef7feaeaf737d05c5a624c580633b7ce0f0f1be/transport/internet/websocket/hub.go

我的,我研究下。看看可不可以实现。另外 ws 0rtt 在 worker 反代下工作吗?

worker只是单纯转发 支不支持全看转发目标 比如我以前用heroku直接部署core那就可以 转发到deno来估计就不行了 除非这边也有相关支持

zizifn commented 1 year ago

相关的实现代码

理论上可以,但是 deno 木有成熟的grpc server。。这就很难办了。关于 ws 0rtt,你让我理解下,这个是什么。。

ws有一个建立http连接再upgrade成websocket的过程 这个过程会消耗一个RTT(每建立一次连接 服务器和客户端多通讯一次) ws 0-rtt是在这个升级的请求里附带一些请求数据 相当没多消耗时间 在xray这个功能服务端是默认启用的 客户端启用方法是在路径后加 ?ed=2048 v2fly的文档在这里 https://www.v2fly.org/v5/config/stream/websocket.html#websocket-stream 当earlyDataHeaderName设置成Sec-WebSocket-Protocol时可以与xray通用

我有时间细细看下,如果 ws 0rtt 是标准,deno 应该默认支持。如果你有时间,你试试在客户的启用下?

我试过了不行 Sec-Websocket-Protocol虽然是标准 但是没指定它是干这个的 这是v2fly相关的实现代码 https://github.com/v2fly/v2ray-core/blob/3ef7feaeaf737d05c5a624c580633b7ce0f0f1be/transport/internet/websocket/hub.go

我的,我研究下。看看可不可以实现。另外 ws 0rtt 在 worker 反代下工作吗?

worker只是单纯转发 支不支持全看转发目标 比如我以前用heroku直接部署core那就可以 转发到deno来估计就不行了 除非这边也有相关支持

我理解了,等我抽出时间抓个包,然后应该就可以实现。

zizifn commented 1 year ago

我新建了ws0rtt issue。。这周刚把node 端vless 的udp 实现,浪费了点时间。下周开始看下,由于不太熟 go,所以需要抓包开发,可能会慢点。