diff --git a/FunGame.Core/Library/Common/Network/ServerSocket.cs b/FunGame.Core/Library/Common/Network/ServerSocket.cs
index 61d0de3..9aa828d 100644
--- a/FunGame.Core/Library/Common/Network/ServerSocket.cs
+++ b/FunGame.Core/Library/Common/Network/ServerSocket.cs
@@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Interface.Base;
using Milimoe.FunGame.Core.Library.Constant;
+using Milimoe.FunGame.Core.Library.Server;
using Milimoe.FunGame.Core.Service;
namespace Milimoe.FunGame.Core.Library.Common.Network
@@ -61,7 +62,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network
throw new SocketGetClientException();
}
- public bool AddClient(string ClientName, Task t)
+ public bool AddClient(string ClientName, BaseModel t)
{
return PlayerThreads.Add(ClientName, t);
}
diff --git a/FunGame.Core/Library/Constant/General.cs b/FunGame.Core/Library/Constant/General.cs
index 4bcb87d..e21f7ad 100644
--- a/FunGame.Core/Library/Constant/General.cs
+++ b/FunGame.Core/Library/Constant/General.cs
@@ -12,7 +12,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
// Const
public const int MaxRetryTimes = 20;
public const int MaxTask_1C2G = 10;
- public const int MaxTask_General = 20;
+ public const int MaxThread_General = 20;
public const int MaxTask_4C4G = 40;
}
}
diff --git a/FunGame.Core/Library/Server/BaseServerModel.cs b/FunGame.Core/Library/Server/BaseServerModel.cs
new file mode 100644
index 0000000..8ed748f
--- /dev/null
+++ b/FunGame.Core/Library/Server/BaseServerModel.cs
@@ -0,0 +1,19 @@
+using Milimoe.FunGame.Core.Library.Common.Network;
+using Milimoe.FunGame.Core.Library.Constant;
+
+namespace Milimoe.FunGame.Core.Library.Server
+{
+ public abstract class BaseModel
+ {
+ public bool Running = false;
+ public ClientSocket? Socket = null;
+ public Task? Task = null;
+ public string ClientName = "";
+
+ public abstract bool Read(ClientSocket socket);
+
+ public abstract bool Send(ClientSocket socket, SocketMessageType type, params object[] objs);
+
+ public abstract void Start();
+ }
+}
diff --git a/FunGame.Core/Service/ThreadManager.cs b/FunGame.Core/Service/ThreadManager.cs
index 4ae649a..d2f8d13 100644
--- a/FunGame.Core/Service/ThreadManager.cs
+++ b/FunGame.Core/Service/ThreadManager.cs
@@ -1,4 +1,5 @@
using System.Collections.Concurrent;
+using Milimoe.FunGame.Core.Library.Server;
namespace Milimoe.FunGame.Core.Service
{
@@ -7,33 +8,33 @@ namespace Milimoe.FunGame.Core.Service
///
/// 最大接受的线程数量
///
- private int MaxTask { get; }
+ private int MaxThread { get; }
///
/// 可参与高并发的字典,但添加效率较低
///
- private ConcurrentDictionary Threads { get; } = new();
+ private ConcurrentDictionary Threads { get; } = new();
///
/// Init ThreadManager
///
- /// MaxTask
- internal ThreadManager(int MaxTask = 0)
+ /// MaxThread
+ internal ThreadManager(int MaxThread = 0)
{
- if (MaxTask <= 0)
- this.MaxTask = Library.Constant.General.MaxTask_General;
+ if (MaxThread <= 0)
+ this.MaxThread = Library.Constant.General.MaxThread_General;
else
{
- this.MaxTask = MaxTask;
+ this.MaxThread = MaxThread;
}
}
///
- /// 获取Task对象
+ /// 获取Thread对象
///
- /// Task的Key
- /// Task对象
- internal Task this[string name]
+ /// Thread的Key
+ /// Thread对象
+ internal BaseModel this[string name]
{
get
{
@@ -42,21 +43,21 @@ namespace Milimoe.FunGame.Core.Service
}
///
- /// 向线程管理器中添加Task
+ /// 向线程管理器中添加Thread
///
- /// Task的Key
- /// Task对象
+ /// Thread的Key
+ /// Thread对象
/// True:操作成功
- internal bool Add(string name, Task t)
+ internal bool Add(string name, BaseModel t)
{
- if (Threads.Count + 1 > MaxTask) return false;
+ if (Threads.Count + 1 > MaxThread) return false;
return Threads.TryAdd(name, t);
}
///
- /// 从线程管理器中移除Task
+ /// 从线程管理器中移除Thread
///
- /// Task的Key
+ /// Thread的Key
/// True:操作成功
internal bool Remove(string name)
{
@@ -64,24 +65,24 @@ namespace Milimoe.FunGame.Core.Service
}
///
- /// 将Task移除,并取得这个Task
+ /// 将Thread移除,并取得这个Thread
///
- /// Task的Key
- /// Task对象
- /// 被移除的Task
- internal bool Remove(string name, ref Task? t)
+ /// Thread的Key
+ /// Thread对象
+ /// 被移除的Thread
+ internal bool Remove(string name, ref BaseModel? t)
{
return Threads.TryRemove(name, out t);
}
///
- /// 将Task移除,并取得这个Task
+ /// 将Thread移除,并取得这个Thread
///
- /// Task的Key
- /// 被移除的Task
- internal Task? RemoveAndGet(string name)
+ /// Thread的Key
+ /// 被移除的Thread
+ internal BaseModel? RemoveAndGet(string name)
{
- Threads.TryRemove(name, out Task? result);
+ Threads.TryRemove(name, out BaseModel? result);
return result;
}