mirror of
https://github.com/FastTunnel/FastTunnel.git
synced 2025-02-08 02:39:29 +08:00
support multi server
This commit is contained in:
parent
c9f3768797
commit
3c96e40127
|
@ -8,5 +8,7 @@ namespace SuiDao.Client.Models
|
|||
public class LogInByKeyMassage : TunnelMassage
|
||||
{
|
||||
public string key { get; set; }
|
||||
|
||||
public long server_id { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,9 +5,18 @@ using System.Text;
|
|||
namespace SuiDao.Client.Models
|
||||
{
|
||||
public class SuiDaoServerConfig
|
||||
{
|
||||
public SuiDaoServerInfo[] servers { get; set; }
|
||||
}
|
||||
|
||||
public class SuiDaoServerInfo
|
||||
{
|
||||
public string ip { get; set; }
|
||||
|
||||
public int bind_port { get; set; }
|
||||
|
||||
public string server_name { get; set; }
|
||||
|
||||
public long server_id { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -161,8 +161,8 @@ namespace SuiDao.Client
|
|||
|
||||
private static void Run(IServiceProvider servicesProvider, ILogger _logger, string key, bool log)
|
||||
{
|
||||
var res = HttpHelper.PostAsJson("https://api1.suidao.io/api/Client/GetServerByKey", $"{{ \"key\":\"{key}\"}}").Result;
|
||||
var jobj = JObject.Parse(res);
|
||||
var res_str = HttpHelper.PostAsJson("https://api1.suidao.io/api/Client/GetServerByKey", $"{{ \"key\":\"{key}\"}}").Result;
|
||||
var jobj = JObject.Parse(res_str);
|
||||
if ((bool)jobj["success"] == true)
|
||||
{
|
||||
// 记录登录记录
|
||||
|
@ -171,7 +171,47 @@ namespace SuiDao.Client
|
|||
AppendTextToFile(Path.Combine(AppContext.BaseDirectory, KeyLogName), Environment.NewLine + key);
|
||||
}
|
||||
|
||||
var server = jobj["data"].ToObject<SuiDaoServerConfig>();
|
||||
SuiDaoServerInfo server;
|
||||
var res = jobj["data"].ToObject<SuiDaoServerConfig>();
|
||||
if (res.servers != null && res.servers.Count() > 0)
|
||||
{
|
||||
// 选择其中一个服务器继续
|
||||
if (res.servers.Count() == 1)
|
||||
{
|
||||
server = res.servers.First();
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("请选择其中一个服务器进行连接(输入序号,回车键确认):");
|
||||
for (int i = 0; i < res.servers.Length; i++)
|
||||
{
|
||||
Console.WriteLine($"{i}:{res.servers[i].server_name}");
|
||||
}
|
||||
|
||||
while (true)
|
||||
{
|
||||
var input = Console.ReadLine();
|
||||
int index;
|
||||
if (int.TryParse(input, out index) && index <= res.servers.Length - 1 && index >= 0)
|
||||
{
|
||||
// 输入有效,退出循环
|
||||
server = res.servers[index];
|
||||
Console.WriteLine($"您选择的服务器为:{server.server_name}");
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("输入有误,请重新输入");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("您无可用的服务器");
|
||||
NewKey(_logger);
|
||||
return;
|
||||
}
|
||||
|
||||
var client = servicesProvider.GetRequiredService<FastTunnelClient>();
|
||||
|
||||
|
@ -193,7 +233,7 @@ namespace SuiDao.Client
|
|||
}
|
||||
|
||||
// 登录
|
||||
_client.Send(new Message<LogInByKeyMassage> { MessageType = MessageType.C_LogIn, Content = new LogInByKeyMassage { key = key } });
|
||||
_client.Send(new Message<LogInByKeyMassage> { MessageType = MessageType.C_LogIn, Content = new LogInByKeyMassage { key = key, server_id = server.server_id } });
|
||||
|
||||
return _client;
|
||||
}, new SuiDaoServer { ServerAddr = server.ip, ServerPort = server.bind_port });
|
||||
|
|
|
@ -15,8 +15,10 @@ namespace SuiDao.Server
|
|||
{
|
||||
public LogInMassage GetConfig(JObject content)
|
||||
{
|
||||
var key = content.ToObject<LogInByKeyMassage>().key;
|
||||
var res = HttpHelper.PostAsJson("https://api1.suidao.io/api/Client/GetTunnelByKey", $"{{ \"key\":\"{key}\"}}").Result;
|
||||
|
||||
var logMsg = content.ToObject<LogInByKeyMassage>();
|
||||
var res = HttpHelper.PostAsJson("https://api1.suidao.io/api/Client/GetTunnelByKey", $"{{ \"key\":\"{logMsg.key}\",\"server_id\":{logMsg.server_id}}}").Result;
|
||||
|
||||
var jobj = JObject.Parse(res);
|
||||
if ((bool)jobj["success"] == true)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<_LastSelectedProfileId>G:\GitHub\FastTunnel\SuiDao.Server\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
|
||||
<_LastSelectedProfileId>D:\GitHub\FastTunnel\SuiDao.Server\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
|
||||
<ShowAllFiles>false</ShowAllFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
Loading…
Reference in New Issue
Block a user