网站对于一个企业的优势,国内最好的crm视频,网站建设初期问题常见,服务性企业网站实时记录当前在线人数#xff0c;登录后保持120秒在线状态#xff0c;在线状态保存在缓存中#xff0c;采用滑动过期#xff0c;在120秒内请求了系统#xff0c;自动续活120秒#xff1b;超过时间则移除用户在线状态#xff1b;
需要在登录过滤器标记用户在线状态需要排…实时记录当前在线人数登录后保持120秒在线状态在线状态保存在缓存中采用滑动过期在120秒内请求了系统自动续活120秒超过时间则移除用户在线状态
需要在登录过滤器标记用户在线状态需要排除循环请求的url比如定时请求的待办数量登录成功后标记用户在线
web记录当前在线人数状态
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using System.Text;
using System.Threading.Tasks;namespace WuZiFenGongSiInfomation.Models
{/// summary/// 当前在线人数/// /summary/// 2024-12-26 9:57:09 wanghaolipublic class OnlineUserAmount{static System.Collections.Concurrent.ConcurrentDictionarystring, bool dict new System.Collections.Concurrent.ConcurrentDictionarystring, bool();/// summary/// 添加在线人/// /summary/// param nameuserId用户主键id/param/// 2024-12-26 9:57:09 wanghaolipublic static void AddUserOnline(string userId){dict.TryAdd(userId, true);System.Runtime.Caching.MemoryCache.Default.AddOrGetExisting(AddUserOnline. userId, 1, new CacheItemPolicy(){SlidingExpiration TimeSpan.FromSeconds(120),RemovedCallback (args) {string userId2 args.CacheItem.Key;System.Diagnostics.Debug.WriteLine(移除用户在线状态 key userId2);LogHelpter.AddLog(移除用户在线状态key userId2, null, UserOnline);string userId3 userId2.Replace(AddUserOnline.,);bool removeResult dict.TryRemove(userId3, out bool k);if (removeResult){System.Diagnostics.Debug.WriteLine(移除用户在线状态成功key userId2);LogHelpter.AddLog(移除用户在线状态成功key userId2, null, UserOnline);}}});}/// summary/// 标记用户在线续活/// /summary/// param nameuserId/param/// 2024-12-26 10:04:09 wanghaolipublic static void VisitUseStatCache(string userId){string key AddUserOnline. userId;bool exists System.Runtime.Caching.MemoryCache.Default.Contains(key);if (exists){ }else{AddUserOnline(userId);}System.Diagnostics.Debug.WriteLine(激活用户在线状态key userId);LogHelpter.AddLog(激活用户在线状态key userId,null, UserOnline);}/// summary/// 当前在线人数/// /summary/// returns/returnspublic static int GetOnlineUserAmount(){return dict.Count;}}
}