zizifn / edgetunnel

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

实现 ws 0-rtt #102

Closed zizifn closed 1 year ago

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来估计就不行了 除非这边也有相关支持

Originally posted by @Fangliding in https://github.com/zizifn/edgetunnel/issues/99#issuecomment-1424715149

zizifn commented 1 year ago

@Fangliding 我抓包明白了 ws 0rtt.. 到时候实现通知你,需要你测试下。

zizifn commented 1 year ago

@Fangliding 已经加上了,请测试。。。

Fangliding commented 1 year ago

@Fangliding 已经加上了,请测试。。。

抱歉那么久才回。。 好消息是可以正常工作了

zizifn commented 1 year ago

@Fangliding 已经加上了,请测试。。。

抱歉那么久才回。。 好消息是可以正常工作了

如果你测试没问题,我会关闭这个issue。