mirror of
https://github.com/project-redbud/FunGame-Server.git
synced 2025-04-20 19:19:39 +08:00
添加MySQL依赖
This commit is contained in:
parent
91bca66b60
commit
e4fe75aa11
@ -22,6 +22,10 @@
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MySql.Data" Version="8.0.30" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="FunGame.Core.Api">
|
||||
<HintPath>..\..\FunGame\bin\Debug\net6.0\FunGame.Core.Api.dll</HintPath>
|
||||
|
@ -28,6 +28,10 @@
|
||||
<Content Include="logo.ico" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MySql.Data" Version="8.0.30" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="FunGame.Core.Api">
|
||||
<HintPath>..\..\FunGame\bin\Debug\net6.0\FunGame.Core.Api.dll</HintPath>
|
||||
|
@ -17,10 +17,17 @@ int port = Config.SERVER_PORT;
|
||||
|
||||
Console.Title = Config.CONSOLE_TITLE;
|
||||
|
||||
try
|
||||
Task t = Task.Factory.StartNew(() =>
|
||||
{
|
||||
Task t = Task.Factory.StartNew(() =>
|
||||
try
|
||||
{
|
||||
// 连接MySQL服务器
|
||||
if (!Config.DefaultDataHelper.Connect())
|
||||
{
|
||||
Running = false;
|
||||
throw new Exception("服务器遇到问题需要关闭,请重新启动服务器!");
|
||||
}
|
||||
|
||||
// 创建IP地址终结点对象
|
||||
IPEndPoint ip = new(IPAddress.Any, port);
|
||||
|
||||
@ -30,15 +37,15 @@ try
|
||||
|
||||
// 开始监听连接
|
||||
ServerSocket.Listen(Config.MAX_PLAYERS);
|
||||
ServerHelper.WriteLine("服务器启动成功,正在监听 . . .");
|
||||
ServerHelper.WriteLine("服务器启动成功,端口号 " + port + " ,开始监听 . . .");
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
Config.ServerNotice = ServerHelper.GetServerNotice();
|
||||
if (Config.ServerNotice != "")
|
||||
ServerHelper.WriteLine("\n\n" + Config.ServerNotice + "\n\n");
|
||||
ServerHelper.WriteLine("\n**********服务器公告**********\n" + Config.ServerNotice + "\n\n");
|
||||
else
|
||||
ServerHelper.WriteLine("无法读取服务器公告。");
|
||||
ServerHelper.WriteLine("无法读取服务器公告");
|
||||
});
|
||||
|
||||
while (Running)
|
||||
@ -59,43 +66,52 @@ try
|
||||
});
|
||||
else
|
||||
if (clientIP != null)
|
||||
ServerHelper.WriteLine("客户端" + clientIP.ToString() + "连接失败。");
|
||||
else
|
||||
ServerHelper.WriteLine("客户端" + clientIP.ToString() + "连接失败。");
|
||||
else
|
||||
ServerHelper.WriteLine("客户端连接失败。");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ServerHelper.WriteLine("ERROR: 客户端断开连接!\n" + e.StackTrace);
|
||||
ServerHelper.WriteLine("客户端断开连接!\n" + e.StackTrace);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ServerHelper.WriteLine(e.StackTrace);
|
||||
if (ServerSocket != null)
|
||||
{
|
||||
ServerSocket.Close();
|
||||
ServerSocket = null;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
while (Running)
|
||||
catch (Exception e)
|
||||
{
|
||||
string? order = "";
|
||||
order = Console.ReadLine();
|
||||
ServerHelper.Type();
|
||||
if (order != null && !order.Equals(""))
|
||||
if (e.Message.Equals("服务器遇到问题需要关闭,请重新启动服务器!"))
|
||||
{
|
||||
switch (order)
|
||||
if (ServerSocket != null)
|
||||
{
|
||||
case "quit":
|
||||
Running = false;
|
||||
break;
|
||||
ServerSocket.Close();
|
||||
ServerSocket = null;
|
||||
}
|
||||
}
|
||||
ServerHelper.Error(e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (ServerSocket != null)
|
||||
{
|
||||
ServerSocket.Close();
|
||||
ServerSocket = null;
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
while (Running)
|
||||
{
|
||||
string? order = "";
|
||||
order = Console.ReadLine();
|
||||
ServerHelper.Type();
|
||||
if (order != null && !order.Equals("") && Running)
|
||||
{
|
||||
switch (order)
|
||||
{
|
||||
case "quit":
|
||||
Running = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
using FunGame.Core.Api.Util;
|
||||
using FunGameServer.Utils;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
@ -23,6 +24,7 @@ namespace FunGameServer.Models.Config
|
||||
public static string ServerNotice = ""; // 服务器的公告
|
||||
|
||||
public static AssemblyHelper DefaultAssemblyHelper = new AssemblyHelper();
|
||||
public static DataHelper DefaultDataHelper = new DataHelper();
|
||||
|
||||
/// <summary>
|
||||
/// string: 玩家标识ID
|
||||
|
@ -43,7 +43,7 @@ namespace FunGameServer.Sockets
|
||||
int type = SocketHelper.GetType(msg);
|
||||
string typestring = SocketHelper.GetTypeString(type);
|
||||
msg = SocketHelper.GetMessage(msg);
|
||||
ServerHelper.WriteLine("[ 客户端(" + typestring + ")] -> " + msg);
|
||||
if (type != (int)SocketEnums.Type.HeartBeat) ServerHelper.WriteLine("[ 客户端(" + typestring + ")] -> " + msg);
|
||||
switch (type)
|
||||
{
|
||||
case (int)SocketEnums.Type.GetNotice:
|
||||
@ -64,7 +64,7 @@ namespace FunGameServer.Sockets
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ServerHelper.WriteLine("ERROR:客户端没有回应。\n" + e.StackTrace);
|
||||
ServerHelper.WriteLine("客户端没有回应。\n" + e.StackTrace);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -87,7 +87,7 @@ namespace FunGameServer.Sockets
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ServerHelper.WriteLine("ERROR:客户端没有回应。" + e.StackTrace);
|
||||
ServerHelper.WriteLine("客户端没有回应。" + e.StackTrace);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -113,8 +113,8 @@ namespace FunGameServer.Sockets
|
||||
FailedTimes++;
|
||||
if (FailedTimes >= Config.MAX_CONNECTFAILED)
|
||||
{
|
||||
ServerHelper.WriteLine("ERROR: Too Many Faileds.");
|
||||
ServerHelper.WriteLine("CLOSE: StreamReader is Closed.");
|
||||
ServerHelper.WriteLine("ERROR -> Too Many Faileds.");
|
||||
ServerHelper.WriteLine("CLOSE -> StreamReader is Closed.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -122,8 +122,8 @@ namespace FunGameServer.Sockets
|
||||
}
|
||||
else
|
||||
{
|
||||
ServerHelper.WriteLine("ERROR: Socket is Closed.");
|
||||
ServerHelper.WriteLine("CLOSE: StringStream is Closed.");
|
||||
ServerHelper.WriteLine("ERROR -> Socket is Closed.");
|
||||
ServerHelper.WriteLine("CLOSE -> StringStream is Closed.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
55
FunGameServer/Utils/DataHelper.cs
Normal file
55
FunGameServer/Utils/DataHelper.cs
Normal file
@ -0,0 +1,55 @@
|
||||
using FunGame.Core.Api.Model.Entity;
|
||||
using FunGameServer.Models.Config;
|
||||
using MySql.Data.MySqlClient;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static FunGame.Core.Api.Model.Enum.CommonEnums;
|
||||
|
||||
namespace FunGameServer.Utils
|
||||
{
|
||||
public class DataHelper
|
||||
{
|
||||
private string? GetConnection = "";
|
||||
private MySqlConnection? msc = null;
|
||||
|
||||
public DataHelper()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public bool Connect()
|
||||
{
|
||||
try
|
||||
{
|
||||
GetConnection = (string?)Config.DefaultAssemblyHelper.GetFunGameCoreValue((int)InterfaceType.ServerInterface, (int)InterfaceMethod.DBConnection);
|
||||
if (GetConnection != null)
|
||||
{
|
||||
string[] DataSetting = GetConnection.Split(";");
|
||||
if (DataSetting.Length > 1 && DataSetting[0].Length > 14 && DataSetting[1].Length > 8)
|
||||
{
|
||||
ServerHelper.WriteLine("Connecting: " + DataSetting[0][14..] + ":" + DataSetting[1][8..]);
|
||||
}
|
||||
msc = new MySqlConnection(GetConnection);
|
||||
msc.Open();
|
||||
if (msc.State == System.Data.ConnectionState.Open)
|
||||
{
|
||||
ServerHelper.WriteLine("Connected: MySQL服务器连接成功");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("MySQL服务启动失败:无法找到MySQL配置文件。");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ServerHelper.Error(e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -16,6 +16,11 @@ namespace FunGameServer.Utils
|
||||
return now.AddMilliseconds(-now.Millisecond).ToString() + " " + Config.SERVER_NAME + ":";
|
||||
}
|
||||
|
||||
public static void Error(Exception e)
|
||||
{
|
||||
Console.Write("\r" + GetPrefix() + e.Message + "\n" + e.StackTrace + "\n\r> ");
|
||||
}
|
||||
|
||||
public static void WriteLine(string? msg)
|
||||
{
|
||||
Console.Write("\r" + GetPrefix() + msg + "\n\r> ");
|
||||
@ -30,9 +35,7 @@ namespace FunGameServer.Utils
|
||||
{
|
||||
try
|
||||
{
|
||||
string? ServerNotice = (string?)Config.DefaultAssemblyHelper.GetFunGameCoreValue((int)InterfaceType.ServerInterface, (int)InterfaceMethod.ServerNotice);
|
||||
if (ServerNotice != null)
|
||||
return ServerNotice;
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user