ASP.NET C# 实现实时用户在线
public static class UserOnline
{
/// <summary>
/// 获取或设置在线列表
/// </summary>
public static Hashtable OnlineUserList
{
get
{
if (HttpContext.Current.Application["OnlineUserList"] == null)
{
Hashtable onlineUserList = new Hashtable();
HttpContext.Current.Application["OnlineUserList"] = onlineUserList;
} return (Hashtable)HttpContext.Current.Application["OnlineUserList"];
}
set
{
HttpContext.Current.Application["OnlineUserList"] = value;
}
} /// <summary>
/// 添加在线成员
/// </summary>
public static bool OnlineUserList_Add(string key, string value)
{
try
{
if (OnlineUserList.Contains(key))
OnlineUserList[key] = value;
else
OnlineUserList.Add(key, value);
return true;
}
catch
{
return false;
}
} /// <summary>
/// 添加在线成员
/// </summary>
public static bool OnlineUserList_Add(string key)
{
string value = DateTime.Now.ToString();
return OnlineUserList_Add(key, value);
} /// <summary>
/// 离线删除用户
/// </summary>
public static bool OnlineUserList_Delete(string key)
{
bool re = false;
if (OnlineUserList.Contains(key))
{
Hashtable userList = OnlineUserList;
userList.Remove(key);
OnlineUserList = userList;
return true;
}
return re;
} /// <summary>
/// 判断用户是否在线
/// </summary>
public static bool UserIsOnline(string adminName)
{
OnlineClearUserOutTimeInOnLineList();
return OnlineUserList.Contains(adminName) ? true : false;
} /// <summary>
/// 删除超时在线用户
/// </summary>
public static void OnlineClearUserOutTimeInOnLineList()
{
int OnlineTimeOut = ;
Hashtable list = new Hashtable();
Hashtable temList = new Hashtable();
list = OnlineUserList;
temList = new Hashtable(list);
foreach (DictionaryEntry de in temList)
{
//删除超时
DateTime onlineTime = Convert.ToDateTime(de.Value);
TimeSpan timeSpan = DateTime.Now - onlineTime; //在线时间和当前时间间隔大于超时分钟数就删除(注:用户非法关闭浏览器)
if (timeSpan.TotalMinutes >= (double)OnlineTimeOut)
{
list.Remove(de.Key);
} } OnlineUserList = list;
} }
ASP.NET C# 实现实时用户在线的更多相关文章
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(九) 之 用 Redis 实现用户在线离线状态消息处理(一)
前言 上一篇中简单讲解了用Redis缓存在线用户逻辑.篇幅也比较小,本篇将详细实现用户的上线下线通知.图片效果转换功能.而且,代码和开发思路都会详细介绍. 效果展示 目前有三个用户,user1,use ...
- Asp.net SignalR 让实时通讯变得如此简单
巡更项目中,需要发送实时消息,以及需要任务开始提醒,于是便有机会接触到SignalR,在使用过程中,发现用SignalR实现通信非常简单,下面我思明将从三个方面分享一下: 一.SignalR是什么 A ...
- 在ASP.NET Core中使用百度在线编辑器UEditor
在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...
- asp.net中如何防止用户重复点击提交按钮
asp.net中如何防止用户重复点击提交按钮 asp.net 中防止因为网速慢等影响交互的问题导致用户可能点击多次提交按钮,从而导致数据库中出现多条重复的记录,经过亲自验证在网上找的方法,找到两个 ...
- Bucky – 免费开源的实时用户监控工具
Bucky 是一个开源的实时用户监控工具,用于衡量用户在浏览器中使用 Web 应用程序时的性能.它可以自动测量你的网页需要多长时间来加载,Ajax 请求需要多长时间和各个函数需要实行多久. 您可能感兴 ...
- asp.net word ecxel类型文件在线预览
asp.net word ecxel类型文件在线预览 首先得引用COM: Microsoft Excel 10 Object Library Microsoft Word 10 Object Libr ...
- java 网站用户在线和客服聊天
注:本文来源于<java 网站用户在线和客服聊天> 这是应用到项目中的一个例子. 实现原理是将信息存储到Application域里面.然后使用Struts2 Action 用json格式的 ...
- Asp.net+WebSocket+Emgucv实时人脸识别
上个月在网上看到一个用web实现简单AR效果的文章,然后自己一路折腾,最后折腾出来一个 Asp.net+WebSocket+Emgucv实时人脸识别的东西,网上也有不少相关资料,有用winform的也 ...
- js用img代替ajax js心跳 向服务器定时传送参数 主要计算用户在线时长
html: <!doctype html><html><head><meta charset="utf-8"><title&g ...
随机推荐
- asp.net webapi 获取报文体的问题
用这种方法: var data=await Request.Content.ReadAsStringAsync(); 一般都无法获取到内容.原因是内部的流对象已经到了最后面.要获取到里面的需要把流的位 ...
- TensorFlow在Windows上的CPU版本和GPU版本的安装指南(亲测有效)
安装说明 平台:Window.Ubuntu.Mac等操作系统 版本:支持GPU版本和CPU版本 安装方式:pip方式.Anaconda方式 attention: 在Windows上目前支持python ...
- 基于YOLOv3和Qt5的车辆行人检测(C++版本)
概述 YOLOv3: 车辆行人检测算法 GitHub Qt5: 制作简单的GUI OpenCV:主要用于putText.drawRec等 Step YOLOv3检测结果 Fig 1. input im ...
- day06 字典、元组、set的方法及常用操作
今日内容: 1.深浅拷贝 2.元组 3.字典 4.set 1.深浅拷贝 # 1.值拷贝 # 采用赋值的方法进行 # 只会将堆区容器变量与栈区的绑定关系进行复制 # 2.浅拷贝 # 会将堆区与栈区的绑定 ...
- OPENSSL_Applink 错误
原因 : 程序太老, 调用了参数为 FILE * 类型的 api. 解决方式: 1. windows exe, 可直接#include<openssl/applink.c> // ext ...
- vue中展示数据
1.v-bind,直接把数据绑定进去了.*100是因为传过来的数据为数字0.3这样子,要转换成百分比 2.整个的数据再data中定义之后,就能在页面直接绑定,v-for,v-if等单独再设置.
- Spring 将请求参数封装成对象
简单描述:最近手里的模块,前后台之间需要传递很多的参数,使用封装的PageData,来获取请求参数的,作微服务迁移的时候,就涉及到需要把参数从pagedata里取出来,一个一个的放到对象的属性中.就很 ...
- UNIX环境高级编程、 现代操作系统概念
UNIX环境高级编程 现代操作系统概念 讲讲内存屏障
- [原创]Zynq AXI-CDMA的使用
Xilinx 提供了3种DMA AXI-DMA AXI-CDMA AXI-VDMA 使用CDMA能够满足项目需求(MM-MM),DS文档介绍如下: The Xilinx LogiCORE™ IP AX ...
- Idea远程调试undertow
1.修改jfinal.sh 添加远程调试配置,端口5555可自行设置 JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,s ...