6 major server modules (PdkFriendServer/GlobalSever/ServerCore/GameModule/GameNetModule) + game logic (GameFix/GameDAL/ServerData) + network layer (NetWorkMessage) + data layer (ObjectModel) + utilities (MrWu/Core/Config/CloudAPI/dll) + adapters (zyxAdapter/base) .NET 8.0 C# solution, 16 projects, 958 source files
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System;
|
|
using Server.DB.Redis;
|
|
using StackExchange.Redis;
|
|
|
|
namespace GameDAL.Game
|
|
{
|
|
public static class SessionUUID
|
|
{
|
|
private const string key = "SessionUUID";
|
|
|
|
/// <summary>
|
|
/// 一天时间再过期
|
|
/// </summary>
|
|
private const int ExpireTime = 24 * 60;
|
|
|
|
public static string GetSessionUUIDKey(string sessionUUID)
|
|
{
|
|
return $"{key}:{sessionUUID}";
|
|
}
|
|
|
|
public static void UpdateExpiredTime(string sessionUUID)
|
|
{
|
|
redisManager.db.KeyExpire(GetSessionUUIDKey(sessionUUID), TimeSpan.FromMinutes(ExpireTime));
|
|
}
|
|
|
|
public static string CreateSessionUUID(int userid)
|
|
{
|
|
string sessionUUID = Guid.NewGuid().ToString().Replace("-", "");
|
|
redisManager.db.StringSet(GetSessionUUIDKey(sessionUUID), userid, TimeSpan.FromMinutes(ExpireTime));
|
|
return sessionUUID;
|
|
}
|
|
|
|
public static int GetUserIdBySessionUUID(string sessionUUID)
|
|
{
|
|
RedisValue value = redisManager.db.StringGet(GetSessionUUIDKey(sessionUUID));
|
|
if (value.HasValue && int.TryParse(value, out int userid) && userid > 0)
|
|
{
|
|
return userid;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
}
|
|
} |