v2ray-core icon indicating copy to clipboard operation
v2ray-core copied to clipboard

v2ray vmess 如何保持长连接

Open sibo-git opened this issue 2 years ago • 8 comments

各位大佬,想咨询一下 v2ray如何代理长连接的,比如聊天软件,不能发送完一个就关闭吧,但是我看vmess又是无状态的,小白提问,正在读代码,但是读取速度很慢

sibo-git avatar Aug 21 '23 09:08 sibo-git

VMess will remain connected until the payload connection is disconnected.

AkinoKaede avatar Aug 24 '23 08:08 AkinoKaede

也就是服务端一直保持某个用户针对于某个端口的连接如果需要,比如ws和tcp,这部分压力将在服务器使用,如果客户端下次使用将直接调用,但是如果客户端发起一个新的连接呢,比如我们需要聊天使用的ws,那么按照现有的ws 模式 ,服务器每次都进行请求,但是中间ws已经端口了,这些如何处理的,可能说的不太清楚,因为本身就不太理解里面对于长连接保持的?

sibo-git avatar Aug 24 '23 08:08 sibo-git

如果通讯双方没有关闭, 那就一直持续到有一方关闭. 至于你说的那种断开重连的情况, 是应用层的事, 由通讯双方自己维护状态, vmess 只负责隧道的通讯, 对是不是重连不感兴趣.

rootkiter avatar Aug 30 '23 03:08 rootkiter

如果通讯双方没有关闭, 那就一直持续到有一方关闭. 至于你说的那种断开重连的情况, 是应用层的事, 由通讯双方自己维护状态, vmess 只负责隧道的通讯, 对是不是重连不感兴趣. 首先谢谢解答 您好,不是很理解, 有三台机器 A客户端 代理B服务器 C 聊天服务器 那么A 发送给C的TCP连接,通过B转发后,我理解B会与C建立连接并将数据传输给C,这个时候C响应后,通过B交换给A客户端,那么如果B的连接销毁后,那么A下次再发送新消息B会不会产生一个新的连接给到C。对代理原理不是太懂哈。

sibo-git avatar Aug 30 '23 03:08 sibo-git

会,建立新链接

rootkiter avatar Aug 30 '23 03:08 rootkiter

那么也就是对于需要保持长连接的tcp或者ws,比如tcp登录后可以发送消息,其实在服务器端保持了连接状态下次发送的会从代理服务器找到第一次的连接吗?

sibo-git avatar Aug 30 '23 03:08 sibo-git

那么也就是对于需要保持长连接的tcp或者ws,比如tcp登录后可以发送消息,其实在服务器端保持了连接状态下次发送的会从代理服务器找到第一次的连接吗?

短线重连是应用层的事, 由客户端和服务器自行管理, v2ray 只负责网络通讯. 参考 你浏览器访问网站时, 关闭浏览器重开后, 仍然维持登陆状态, 此时 v2ray 可“近似理解”为网卡的角色, 不关心你是不是登陆了账号, 来了数据包交到对应的目标就够了, 账号的登录状态是浏览器和服务器各自维护的.

rootkiter avatar Aug 30 '23 04:08 rootkiter

那么也就是对于需要保持长连接的tcp或者ws,比如tcp登录后可以发送消息,其实在服务器端保持了连接状态下次发送的会从代理服务器找到第一次的连接吗?

作为用户,我理解你其实想要的是在客户端(或下游的)v2ray上的 KeepAlive 功能,其实还有些别的用户(包括我自己)也希望有这特性,就像几乎每个FTP客户端或很多SSH客户端已经做到的那样,实用且不难实现的一个小功能。

但感觉v2ray的开发团队的成员们也许精力有限、也许有些刻板、也许有些托大,一些从用户角度出发非常实际的需求都留给系统层面的配置或代码改进来完成。但如果几十年前写那些程序的人们也都觉得这不该由软件来提供,用户们爱用不用,那很有可能互联网也不是今天这个样子。

rendaa avatar Dec 13 '23 16:12 rendaa

This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Apr 12 '24 01:04 github-actions[bot]