mirror of
https://github.com/project-redbud/FunGame-Server.git
synced 2025-04-22 03:59:36 +08:00
Merge SocketHelper in ServerHelper
This commit is contained in:
commit
d87f97c30c
@ -110,11 +110,11 @@ void StartServer()
|
||||
continue;
|
||||
}
|
||||
Config.ConnectingPlayersCount++;
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 正在连接服务器 . . .");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientIPAddress) + " 正在连接服务器 . . .");
|
||||
if (IsIPBanned(ListeningSocket, ClientIPAddress))
|
||||
{
|
||||
SendRefuseConnect(socket, "服务器已拒绝黑名单用户连接。");
|
||||
ServerHelper.WriteLine("检测到 " + SocketHelper.MakeClientName(ClientIPAddress) + " 为黑名单用户,已禁止其连接!");
|
||||
ServerHelper.WriteLine("检测到 " + ServerHelper.MakeClientName(ClientIPAddress) + " 为黑名单用户,已禁止其连接!");
|
||||
Config.ConnectingPlayersCount--;
|
||||
continue;
|
||||
}
|
||||
@ -128,13 +128,13 @@ void StartServer()
|
||||
ClientModel.SetTaskAndClientName(t, ClientIPAddress);
|
||||
}
|
||||
else
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 连接失败。");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientIPAddress) + " 连接失败。");
|
||||
Config.ConnectingPlayersCount--;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (--Config.ConnectingPlayersCount < 0) Config.ConnectingPlayersCount = 0;
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 断开连接!");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientIPAddress) + " 断开连接!");
|
||||
ServerHelper.Error(e);
|
||||
}
|
||||
}
|
||||
@ -172,9 +172,9 @@ bool Read(ClientSocket socket)
|
||||
if (type != SocketMessageType.Unknown)
|
||||
{
|
||||
if (objs[0] != null && objs[0].GetType() == typeof(string) && objs[0].ToString()!.Trim() != "")
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(socket.ClientIP) + " -> " + objs[0]);
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + ServerHelper.MakeClientName(socket.ClientIP) + " -> " + objs[0]);
|
||||
else
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(socket.ClientIP));
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + ServerHelper.MakeClientName(socket.ClientIP));
|
||||
return true;
|
||||
}
|
||||
ServerHelper.WriteLine("客户端发送了不符合FunGame规定的字符,拒绝连接。");
|
||||
@ -187,7 +187,7 @@ bool Send(ClientSocket socket, Guid Token)
|
||||
string msg = Config.ServerName + ";" + Config.ServerNotice;
|
||||
if (socket.Send(SocketMessageType.Connect, msg, Token) == SocketResult.Success)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(socket.ClientIP) + " <- " + "已确认连接");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "已确认连接");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@ -201,7 +201,7 @@ bool SendRefuseConnect(ClientSocket socket, string msg)
|
||||
msg = $"连接被拒绝,如有疑问请联系服务器管理员:{msg}";
|
||||
if (socket.Send(SocketMessageType.Connect, msg) == SocketResult.Success)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(socket.ClientIP) + " <- " + "已拒绝连接");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "已拒绝连接");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
@ -71,7 +71,7 @@ namespace Milimoe.FunGame.Server.Model
|
||||
// 验证Token
|
||||
if (type != SocketMessageType.HeartBeat && token != Token)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 使用了非法方式传输消息,服务器拒绝回应 -> [" + ServerSocket.GetTypeString(type) + "] ");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " 使用了非法方式传输消息,服务器拒绝回应 -> [" + ServerSocket.GetTypeString(type) + "] ");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -81,9 +81,9 @@ namespace Milimoe.FunGame.Server.Model
|
||||
if (!IgnoreType.Contains(type))
|
||||
{
|
||||
if (msg.Trim() == "")
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User));
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + ServerHelper.MakeClientName(ClientName, User));
|
||||
else
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User) + " -> " + msg);
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + ServerHelper.MakeClientName(ClientName, User) + " -> " + msg);
|
||||
}
|
||||
|
||||
switch (type)
|
||||
@ -226,14 +226,14 @@ namespace Milimoe.FunGame.Server.Model
|
||||
SQLHelper.ExecuteDataSet(UserQuery.Select_IsExistUsername(username), out SQLResult result);
|
||||
if (result == SQLResult.Success)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 账号已被注册");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " 账号已被注册");
|
||||
return Send(socket, type, RegInvokeType.DuplicateUserName);
|
||||
}
|
||||
// 检查邮箱是否重复
|
||||
SQLHelper.ExecuteDataSet(UserQuery.Select_IsExistEmail(email), out result);
|
||||
if (result == SQLResult.Success)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 邮箱已被注册");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " 邮箱已被注册");
|
||||
return Send(socket, type, RegInvokeType.DuplicateEmail);
|
||||
}
|
||||
// 检查验证码是否发送过
|
||||
@ -244,7 +244,7 @@ namespace Milimoe.FunGame.Server.Model
|
||||
string RegVerifyCode = (string)SQLHelper.DataSet.Tables[0].Rows[0][RegVerifyCodes.Column_RegVerifyCode];
|
||||
if ((DateTime.Now - RegTime).TotalMinutes < 10)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + $" 十分钟内已向{email}发送过验证码:{RegVerifyCode}");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + $" 十分钟内已向{email}发送过验证码:{RegVerifyCode}");
|
||||
}
|
||||
return Send(socket, type, RegInvokeType.InputVerifyCode);
|
||||
}
|
||||
@ -263,17 +263,17 @@ namespace Milimoe.FunGame.Server.Model
|
||||
string[] To = new string[] { email };
|
||||
if (MailSender.Send(MailSender.CreateMail(Subject, Body, System.Net.Mail.MailPriority.Normal, true, To)) == MailSendResult.Success)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + $" 已向{email}发送验证码:{RegVerify}");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + $" 已向{email}发送验证码:{RegVerify}");
|
||||
}
|
||||
else
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 无法发送验证码");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " 无法发送验证码");
|
||||
ServerHelper.WriteLine(MailSender.ErrorMsg);
|
||||
}
|
||||
}
|
||||
else // 不使用MailSender的情况
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + $" 验证码为:{RegVerify},请服务器管理员告知此用户");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + $" 验证码为:{RegVerify},请服务器管理员告知此用户");
|
||||
}
|
||||
return Send(socket, type, RegInvokeType.InputVerifyCode);
|
||||
}
|
||||
@ -299,7 +299,7 @@ namespace Milimoe.FunGame.Server.Model
|
||||
DateTime RegTime = (DateTime)(SQLHelper.DataSet.Tables[0].Rows[0][RegVerifyCodes.Column_RegTime]);
|
||||
if ((DateTime.Now - RegTime).TotalMinutes >= 10)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 验证码已过期");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " 验证码已过期");
|
||||
msg = "此验证码已过期,请重新注册。";
|
||||
SQLHelper.Execute(RegVerifyCodes.Delete_RegVerifyCode(username, email), out _);
|
||||
return Send(socket, type, false, msg);
|
||||
@ -397,7 +397,7 @@ namespace Milimoe.FunGame.Server.Model
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 没有回应。");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " 没有回应。");
|
||||
ServerHelper.Error(e);
|
||||
return false;
|
||||
}
|
||||
@ -424,14 +424,14 @@ namespace Milimoe.FunGame.Server.Model
|
||||
}
|
||||
object obj = objs[0];
|
||||
if (obj.GetType() == typeof(string) && (string)obj != "")
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User) + " <- " + obj);
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + ServerHelper.MakeClientName(ClientName, User) + " <- " + obj);
|
||||
return true;
|
||||
}
|
||||
throw new CanNotSendToClientException();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 没有回应。");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " 没有回应。");
|
||||
ServerHelper.Error(e);
|
||||
return false;
|
||||
}
|
||||
@ -511,7 +511,7 @@ namespace Milimoe.FunGame.Server.Model
|
||||
private void CreateStreamReader()
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
ServerHelper.WriteLine("Creating: StreamReader -> " + SocketHelper.MakeClientName(ClientName, User) + " ...OK");
|
||||
ServerHelper.WriteLine("Creating: StreamReader -> " + ServerHelper.MakeClientName(ClientName, User) + " ...OK");
|
||||
while (Running)
|
||||
{
|
||||
if (Socket != null)
|
||||
@ -523,8 +523,8 @@ namespace Milimoe.FunGame.Server.Model
|
||||
{
|
||||
RemoveUser();
|
||||
Close();
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " Error -> Too Many Faileds.");
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " Close -> StreamReader is Closed.");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " Error -> Too Many Faileds.");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " Close -> StreamReader is Closed.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -534,8 +534,8 @@ namespace Milimoe.FunGame.Server.Model
|
||||
{
|
||||
RemoveUser();
|
||||
Close();
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " Error -> Socket is Closed.");
|
||||
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " Close -> StringStream is Closed.");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " Error -> Socket is Closed.");
|
||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(ClientName, User) + " Close -> StringStream is Closed.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -544,7 +544,7 @@ namespace Milimoe.FunGame.Server.Model
|
||||
private void CreatePeriodicalQuerier()
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
ServerHelper.WriteLine("Creating: PeriodicalQuerier -> " + SocketHelper.MakeClientName(ClientName, User) + " ...OK");
|
||||
ServerHelper.WriteLine("Creating: PeriodicalQuerier -> " + ServerHelper.MakeClientName(ClientName, User) + " ...OK");
|
||||
while (Running)
|
||||
{
|
||||
// 每两小时触发一次SQL服务器的心跳查询,防止SQL服务器掉线
|
||||
|
@ -29,6 +29,16 @@ namespace Milimoe.FunGame.Server.Utility
|
||||
Console.Write("\r> ");
|
||||
}
|
||||
|
||||
public static string MakeClientName(string name, User? user = null)
|
||||
{
|
||||
if (user != null)
|
||||
{
|
||||
return "玩家 " + user.Username;
|
||||
}
|
||||
if (name != "") return "客户端(" + name + ")";
|
||||
return "客户端";
|
||||
}
|
||||
|
||||
private static Hashtable GetServerSettingHashtable()
|
||||
{
|
||||
Hashtable settings = new();
|
||||
@ -105,39 +115,6 @@ namespace Milimoe.FunGame.Server.Utility
|
||||
}
|
||||
}
|
||||
|
||||
public class SocketHelper
|
||||
{
|
||||
public static int GetType(string msg)
|
||||
{
|
||||
int index = msg.IndexOf(';') - 1;
|
||||
if (index > 0)
|
||||
return Convert.ToInt32(msg[..index]);
|
||||
else
|
||||
return Convert.ToInt32(msg[..1]);
|
||||
}
|
||||
|
||||
public static string GetMessage(string msg)
|
||||
{
|
||||
int index = msg.IndexOf(';') + 1;
|
||||
return msg[index..];
|
||||
}
|
||||
|
||||
public static string MakeMessage(int type, string msg)
|
||||
{
|
||||
return type + ";" + msg;
|
||||
}
|
||||
|
||||
public static string MakeClientName(string name, User? user = null)
|
||||
{
|
||||
if (user != null)
|
||||
{
|
||||
return "玩家 " + user.Username;
|
||||
}
|
||||
if (name != "") return "客户端(" + name + ")";
|
||||
return "客户端";
|
||||
}
|
||||
}
|
||||
|
||||
public class SmtpHelper
|
||||
{
|
||||
public static string SenderMailAddress { get; set; } = "";
|
||||
|
Loading…
x
Reference in New Issue
Block a user