网站首页 > 博客文章 正文
前阵在做WebSocket的一些项目测试时,发现网上很多文章都说可以用Session来统计在线人数,我认为这里有误导的成分。
Session对于每个访客,会产生一个唯一的session_id,所以访客和session_id可以理解为class(类)和private(私有成员)的关系,不同的访客就是不同的class,不同的session_id就是不同的private成员。
所以访客A是访问不了访客B的Session数据的。
Session在服务器的存活时间默认情况下是1440秒,即24分钟。不过多数情况下大家都会根据自己的需要来设置这个值。那么问题就来了,当访客是非正常退出,比如最常见的就是直接关闭浏览器,这时候的Session数据因为还在存活期内、又没有接收到变更指令,所以是不会变化的,不管是写入数据库还是检查session_id文件,都无法有效避免这种情况。(如下图1)
上图是使用网上一个测试样例的测试结果。结果显示,在线的访客还有好多,红色的都是。而实际上除了1个是真正在线的,其他的都已经不在线了,连浏览器都关掉了的。
由此可见,用Session来统计在线人数的方案放到项目中是行不通的。要实现实时统计在线人数,可以使用WebSocket技术。
WebSocket技术广泛应用于日常生活中,如扫码登录、扫码支付等多端互动共同完成一件事的场景。(如图2)
上图是一个WebSocket项目的测试场景,实现多端互动完成扫码支付和即时通知的功能。不过使用WebSocket技术来统计在线人数,是不是有点大材小用呢?
猜你喜欢
- 2025-04-09 Springboot下的WebSocket开发(springboot整合websocket)
- 2025-04-09 如何实现 WebSocket 反向代理?(反向代理tcp)
- 2025-04-09 Java实现即时通讯的优雅之选——Websocket
- 2025-04-09 Spring Boot整合WebSocket:开启实时通信之旅
- 2025-04-09 Flutter UI自动化测试技术方案选型与探索
- 2025-04-09 Spring Boot3 竟能如此轻松整合 WebSocket 技术,你还不知道?
- 2025-04-09 揭秘利用python+unittest实现Webscoket协议接口测试
- 2025-04-09 【Spring Boot】WebSocket 的 6 种集成方式
- 2025-04-09 Spring Boot3 中 WebSocket 实现数据实时通信全解析
- 2025-04-09 fastapi调试websocket报错404的处理方案
你 发表评论:
欢迎- 373℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 369℃用AI Agent治理微服务的复杂性问题|QCon
- 360℃初次使用IntelliJ IDEA新建Maven项目
- 352℃Maven技术方案最全手册(mavena)
- 349℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 348℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 346℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 344℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)