RustDesk使用自建api时PC端总是连接时间超长,有时甚至连接不上,原因是因为server不会发起客户端的secure_tcp请求,所以客户端超时。
相关代码代码位置在 https://github.com/rustdesk/rustdesk/blob/master/src/client.rs
if !key.is_empty() && !token.is_empty() {
// mainly for the security of token
allow_err!(secure_tcp(&mut socket, key).await);
}
可看到当key和token都不为空时,会调用secure_tcp,但是server端不会响应,所以客户端超时
但不登录API账户,则不会有token,所以非登录状态下不会超时,但非登录状态下还是可以加密链接的,所以可以将secure_tcp直接返回
secure_tcp 代码位置在 https://github.com/rustdesk/rustdesk/blob/master/src/common.rs#L1234
pub async fn secure_tcp(conn: &mut FramedStream, key: &str) -> ResultType<()>
...
解决方案
编译客户端前修改源码 src/common.rs 文件第1254行附近找到如下代码:
pub async fn secure_tcp(conn: &mut FramedStream, key: &str) -> ResultType<()> {
在其下一行加上如下代码即可(如图):
return Ok(());
这一切,似未曾拥有