/// <summary> /// 获取在线人数 /// </summary> /// <returns></returns> public static int GetOnlinePerson() { int Flag = 0; Hashtable hOnline = MemCached.GetCache <Hashtable>("LoginOnline"); if (hOnline != null) { Flag = hOnline.Count; } return(Flag); }
/// <summary> /// 登出系统,清除系统缓存 /// </summary> /// <param name="UserID">用户ID</param> public static bool LogoutSystem(string UserID) { Hashtable hOnline = MemCached.GetCache <Hashtable>("LoginOnline"); if (hOnline != null) { hOnline.Remove(UserID); MemCached.AddOrReplaceCache <Hashtable>("LoginOnline", hOnline, DateTime.Now.AddYears(1)); return(true); } return(false); }
/// <summary> /// 登录身份验证 /// </summary> /// <param name="GUID">登录GUID</param> /// <param name="UserID">用户ID</param> /// <returns>返回是否合法</returns> public static bool LoginedCheck(string GUID, string UserID) { bool Flag = true; Hashtable hOnline = MemCached.GetCache <Hashtable>("LoginOnline"); if (hOnline != null) { object Val = hOnline[UserID]; if (Val != null && Val.ToString() == GUID) { Flag = true; } } return(Flag); }
/// <summary> /// 登录系统 /// </summary> /// <param name="UserID">用户ID</param> /// <returns>返回:唯一GUID</returns> public static string LoginedSetKey(string UserID) { //以guid作为用户的唯一标识 string guid = Guid.NewGuid().ToString(); // Hashtable hOnline = MemCached.GetCache <Hashtable>("LoginOnline"); //Hashtable hOnline = (Hashtable)WebCache.GetCache("LoginOnline"); if (hOnline == null) { hOnline = new Hashtable(); } hOnline[UserID] = guid; //WebCache.Insert("LoginOnline", hOnline,0); //MemCached.AddOrReplaceCache<Hashtable>("LoginOnline", hOnline, DateTime.Now.AddYears(1)); return(guid); }
/// <summary> /// 执行命令 /// </summary> /// <param name="cmd">指令</param> /// <param name="args">参数</param> /// <param name="port">服务器端口</param> /// <returns></returns> private static string Exec(CmdEnum cmd, List <string> args, int port) { using (var memCached = MemCached.Create(new IPEndPoint(IPAddress.Loopback, port))) { switch (cmd) { case CmdEnum.get: if (args.Count != 1) { return(string.Empty); } try { var result = memCached.Get(args[0]); if (result.Status != OprationStatus.No_Error) { return(result.Status.ToString()); } return(result.Value.ToString()); } catch { return("The Value Is A Unknow Object"); } case CmdEnum.set: if (args.Count != 3) { return(string.Empty); } var state = memCached.Set(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state.ToString()); case CmdEnum.add: if (args.Count != 3) { return(string.Empty); } state = memCached.Add(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state.ToString()); case CmdEnum.replace: if (args.Count != 3) { return(string.Empty); } state = memCached.Replace(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state.ToString()); case CmdEnum.delete: if (args.Count != 1) { return(string.Empty); } state = memCached.Delete(args[0]); return(state.ToString()); case CmdEnum.flush: if (args.Count != 1) { return(string.Empty); } memCached.Flush(TimeSpan.FromSeconds(int.Parse(args[0]))); return("OK"); case CmdEnum.touch: if (args.Count != 2) { return(string.Empty); } state = memCached.Touch(args[0], TimeSpan.FromSeconds(int.Parse(args[1]))); return(state.ToString()); case CmdEnum.stat: var lines = memCached.Stat().Select(item => string.Format("{0} => {1}", item.Key, item.Value)); return(string.Join(Environment.NewLine, lines)); default: return(string.Empty); } } }
/// <summary> /// 执行命令 /// </summary> /// <param name="cmd">指令</param> /// <param name="args">参数</param> /// <param name="port">服务器端口</param> /// <returns></returns> private static string Exec(CmdEnum cmd, List <string> args, int port) { var keyNotExists = "The Key Is Not Exists"; var keyHasExists = "The Key Has Exists"; var ok = "OK"; using (var memCached = MemCached.Create(new IPEndPoint(IPAddress.Loopback, port))) { switch (cmd) { case CmdEnum.get: if (args.Count != 1) { return(string.Empty); } try { var result = memCached.Get(args[0]); if (result.Status == false) { return(keyNotExists); } return(result.Value.ToString()); } catch { return("The Value Is A Unknow Object"); } case CmdEnum.set: if (args.Count != 3) { return(string.Empty); } var state = memCached.Set(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state ? ok : keyNotExists); case CmdEnum.add: if (args.Count != 3) { return(string.Empty); } state = memCached.Add(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state ? ok : keyHasExists); case CmdEnum.replace: if (args.Count != 3) { return(string.Empty); } state = memCached.Replace(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state ? ok : keyNotExists); case CmdEnum.delete: if (args.Count != 1) { return(string.Empty); } state = memCached.Delete(args[0]); return(state ? ok : keyNotExists); case CmdEnum.flush: if (args.Count != 1) { return(string.Empty); } memCached.Flush(TimeSpan.FromSeconds(int.Parse(args[0]))); return(ok); default: return(string.Empty); } } }