mirror of
https://github.com/snltty/linker.git
synced 2025-10-24 01:23:17 +08:00
无缝切换隧道
This commit is contained in:
@@ -45,10 +45,7 @@ namespace linker.plugins.client
|
|||||||
runningConfigTransfer.Setter(configKey, SetServers);
|
runningConfigTransfer.Setter(configKey, SetServers);
|
||||||
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(runningConfig.Data.Client.Servers));
|
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(runningConfig.Data.Client.Servers));
|
||||||
|
|
||||||
clientSignInState.NetworkFirstEnabledHandle += () =>
|
clientSignInState.NetworkEnabledHandle += (times) => SyncServers();
|
||||||
{
|
|
||||||
SyncServers();
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -71,7 +68,7 @@ namespace linker.plugins.client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},10000);
|
}, 10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@@ -41,10 +41,7 @@ namespace linker.plugins.relay
|
|||||||
|
|
||||||
runningConfigTransfer.Setter(configKey, SetServers);
|
runningConfigTransfer.Setter(configKey, SetServers);
|
||||||
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(new RelayRunningSyncInfo { ByRelay = running.Data.Relay.ByRelay, Servers = running.Data.Relay.Servers }));
|
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(new RelayRunningSyncInfo { ByRelay = running.Data.Relay.ByRelay, Servers = running.Data.Relay.Servers }));
|
||||||
clientSignInState.NetworkFirstEnabledHandle += () =>
|
clientSignInState.NetworkEnabledHandle += (times) => SyncServers();
|
||||||
{
|
|
||||||
SyncServers();
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
private void InitConfig()
|
private void InitConfig()
|
||||||
{
|
{
|
||||||
|
@@ -33,11 +33,8 @@ namespace linker.plugins.sforward
|
|||||||
|
|
||||||
runningConfigTransfer.Setter(configKey, SetSecretKey);
|
runningConfigTransfer.Setter(configKey, SetSecretKey);
|
||||||
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(GetSecretKey()));
|
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(GetSecretKey()));
|
||||||
clientSignInState.NetworkFirstEnabledHandle += () =>
|
clientSignInState.NetworkFirstEnabledHandle += () => Start();
|
||||||
{
|
clientSignInState.NetworkEnabledHandle += (times) => SyncKey();
|
||||||
Start();
|
|
||||||
SyncKey();
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#region 同步配置
|
#region 同步配置
|
||||||
@@ -80,7 +77,7 @@ namespace linker.plugins.sforward
|
|||||||
{
|
{
|
||||||
Stop(item);
|
Stop(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void Start(SForwardInfo forwardInfo)
|
private void Start(SForwardInfo forwardInfo)
|
||||||
@@ -216,7 +213,7 @@ namespace linker.plugins.sforward
|
|||||||
if (old == null) return false;
|
if (old == null) return false;
|
||||||
|
|
||||||
old.Started = false;
|
old.Started = false;
|
||||||
|
|
||||||
running.Data.SForwards.Remove(old);
|
running.Data.SForwards.Remove(old);
|
||||||
running.Data.Update();
|
running.Data.Update();
|
||||||
|
|
||||||
|
@@ -49,7 +49,7 @@ namespace linker.plugins.tunnel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
clientSignInState.NetworkFirstEnabledHandle += () =>
|
clientSignInState.NetworkEnabledHandle += (times) =>
|
||||||
{
|
{
|
||||||
SyncWanPort();
|
SyncWanPort();
|
||||||
SyncTransport();
|
SyncTransport();
|
||||||
|
@@ -59,10 +59,7 @@ namespace linker.plugins.tunnel.excludeip
|
|||||||
|
|
||||||
private void InitExcludeIP()
|
private void InitExcludeIP()
|
||||||
{
|
{
|
||||||
clientSignInState.NetworkFirstEnabledHandle += () =>
|
clientSignInState.NetworkEnabledHandle += (times) => SyncExcludeIP();
|
||||||
{
|
|
||||||
SyncExcludeIP();
|
|
||||||
};
|
|
||||||
runningConfigTransfer.Setter(exipConfigKey, SettExcludeIPs);
|
runningConfigTransfer.Setter(exipConfigKey, SettExcludeIPs);
|
||||||
runningConfigTransfer.Getter(exipConfigKey, () => MemoryPackSerializer.Serialize(GetExcludeIPs()));
|
runningConfigTransfer.Getter(exipConfigKey, () => MemoryPackSerializer.Serialize(GetExcludeIPs()));
|
||||||
}
|
}
|
||||||
|
@@ -43,6 +43,7 @@ namespace linker.plugins.updater
|
|||||||
UpdateTask();
|
UpdateTask();
|
||||||
updateInfo.Update();
|
updateInfo.Update();
|
||||||
};
|
};
|
||||||
|
clientSignInState.NetworkEnabledHandle += (times) => SyncKey();
|
||||||
|
|
||||||
}
|
}
|
||||||
public string GetSecretKey()
|
public string GetSecretKey()
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
v1.3.8
|
v1.3.8
|
||||||
2024-09-18 00:31:04
|
2024-09-18 09:21:47
|
||||||
1. 优化隧道连接逻辑,降低首帧时间,先中继,成功则后台打洞,后台打洞成功则切换隧道,中继失败则立即打洞
|
1. 优化隧道连接逻辑,降低首帧时间,先中继,成功则后台打洞,后台打洞成功则切换隧道,中继失败则立即打洞
|
||||||
2. 虚拟网卡,可能会丢失一两个包,TCP不会断开连接
|
2. 虚拟网卡,可能会丢失一两个包,TCP不会断开连接
|
||||||
3. 端口转发,在发送数据包失败后,会尝试切换隧道再次发送,无缝切换隧道
|
3. 端口转发,在发送数据包失败后,会尝试切换隧道再次发送,无缝切换隧道
|
||||||
|
Reference in New Issue
Block a user