优化更新

This commit is contained in:
snltty
2024-09-05 09:20:19 +08:00
parent 3824e514bb
commit f7f3e8bbdd
8 changed files with 52 additions and 56 deletions

View File

@@ -181,8 +181,9 @@ namespace linker.plugins.relay
SecretKey = item.SecretKey,
Server = server,
TransactionId = transactionId,
TransportName = $"{transport.Name}|{item.Name}",
SSL = item.SSL
TransportName = transport.Name,
SSL = item.SSL,
ServerName = item.Name
};
LoggerHelper.Instance.Info($"relay to {relayInfo.RemoteMachineId}->{relayInfo.RemoteMachineName} {relayInfo.ToJson()}");
@@ -224,7 +225,9 @@ namespace linker.plugins.relay
try
{
await TestServer(relayInfo);
RelayServerInfo server = running.Data.Relay.Servers.FirstOrDefault(c => c.Name == relayInfo.ServerName) ?? running.Data.Relay.Servers.FirstOrDefault();
relayInfo.Server = NetworkHelper.GetEndPoint(server.Host, 3478);
ITransport _transports = transports.FirstOrDefault(c => c.Name == relayInfo.TransportName);
if (_transports != null)
{
@@ -257,28 +260,6 @@ namespace linker.plugins.relay
}
return false;
}
private async Task TestServer(RelayInfo relayInfo)
{
string[] arr = relayInfo.TransportName.Split('|');
relayInfo.TransportName = arr[0];
try
{
Socket socket = new Socket(relayInfo.Server.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
await socket.ConnectAsync(relayInfo.Server).WaitAsync(TimeSpan.FromMilliseconds(500)).ConfigureAwait(false);
socket.SafeClose();
}
catch (Exception)
{
RelayServerInfo server = null;
if (arr.Length > 1)
{
server = running.Data.Relay.Servers.FirstOrDefault(c => c.Name == arr[1]);
}
server ??= running.Data.Relay.Servers.FirstOrDefault();
relayInfo.Server = NetworkHelper.GetEndPoint(server.Host, 3478);
}
}
/// <summary>
/// 回调