社区
Web 开发
帖子详情
征集ajax 轮询 session不超时解决方案
liang__
2009-12-04 02:55:05
如题
因为ajax轮询造成session不能超时 或者 哪位同学能给出替代ajax轮询的方案(类似在线聊天的用户列表)。
...全文
585
13
打赏
收藏
征集ajax 轮询 session不超时解决方案
如题 因为ajax轮询造成session不能超时 或者 哪位同学能给出替代ajax轮询的方案(类似在线聊天的用户列表)。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
逃亡火焰
2012-03-02
打赏
举报
回复
求实现代码~~~~~~
liang__
2009-12-07
打赏
举报
回复
谢谢各位的回答。
实现方法与九楼说的类似。
因代码写的简陋,就不拿出来献丑了。
思路是这样的。在Filter里记录请求路径。如果是轮询的这个路径,放入session里一个标志位。
然后在客户端用js来进行时间递减,并且去判断session里的标志位,根据标志位来决定超时时间的值。
如果是正常请求,时间恢复超时时间的值。如果是轮询就递减。时间递减到0就把session注销掉。
villagehead
2009-12-04
打赏
举报
回复
setTime(methodName(),2000)
这类的方法不能实现lz的需求吗?
可能ajax的框架,比如jquery/Ext什么的也有吧。
反正定时给服务器个“提醒”,
说“俺还没有死”
就可以了。
啥方法都行的吧?
good luck
shine333
2009-12-04
打赏
举报
回复
当然token的保存于判断,也可以放在服务器的Filter中
shine333
2009-12-04
打赏
举报
回复
你写个Filter,过滤正常的请求,每次有类似请求发送过滤,则往session中记录一个新的令牌(比如java.util.UUID.randomUUID();)
然后再轮询中的代码里,向客户端发送这个令牌(比如response.setHeader("X-Token", session.getAttribute("lastToken").toString());
客户端负责判断轮询返回的token,如果是新的token,保存其生成的时间,如果是旧的,判断其生成的时间,如果过长,则超时,可以强制退出。
之所以令牌没有直接用服务器的时间,是怕客户端与服务器时间不一致。
iamrf
2009-12-04
打赏
举报
回复
在filter里过滤下
liang__
2009-12-04
打赏
举报
回复
[Quote=引用 4 楼 zliu789 的回复:]
能不能记录sessionid然后 设置超时时间 到时间 强制destroy
[/Quote]
这样的话,会对正常的访问造成影响。比如说设置超时时间是五分钟。
如果用户在这五分钟内点击了别的链接,我们不能在五分钟的时候把session destroy掉。
老黄瓜_
2009-12-04
打赏
举报
回复
程序上判断用户操作就刷新 超时时间 复杂 散水...
zjhlht
2009-12-04
打赏
举报
回复
找几个AJAX群加上问问~~~
老黄瓜_
2009-12-04
打赏
举报
回复
能不能记录sessionid然后 设置超时时间 到时间 强制destroy
liang__
2009-12-04
打赏
举报
回复
为什么我发起的贴子总不火呢?
顶起,希望知道的不吝啬自己的想法。
大家说一下自己的看法,对不对没关系,大家都是来学习的。
顶者有分。不够可以加。
liang__
2009-12-04
打赏
举报
回复
[Quote=引用 1 楼 horse815 的回复:]
session.setMaxInactiveInterval(-1)
这样此session就不会超时了,不需要时刻轮询了。
[/Quote]
谢谢你的回答,不过你的回答让我很难过,证明了我的表述真的很差。
我的意思是因为ajax轮询 , 造成了session不会失效。
我的要求是要让session失效。
horse815
2009-12-04
打赏
举报
回复
session.setMaxInactiveInterval(-1)
这样此session就不会超时了,不需要时刻轮询了。
java
session
超时
_Javaweb项目
session
超时
解决方案
Session
超时
理解为:浏览器和服务器之间创建了一个
Session
,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此
Session
销毁,客户端再一次与服务器交互时之前的
Session
就不存在了。0.需求需要对所有的/web/**...
webSocket、
Ajax
轮询
、长
轮询
(long poll)
2、long poll 其实原理跟
ajax
轮询
差不多,都是采用
轮询
的方式,不过采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消 息才...
Ajax
短
轮询
,长
轮询
,SSE(Server Sent Event)
轮询
和 websocket
轮询
Ajax
短
轮询
,长
轮询
,SSE(Server Sent Event)
轮询
和 websocket
轮询
AJAX
轮询
方式 客服端以用户定义的时间间隔去服务器上查询最新的数据。 短
轮询
,客服端会对服务器在短时间内发送出多个请求。 长
轮询
或者COMET。...
Ajax
轮询
,
Ajax
长
轮询
和websocket(详细使用)
1.三者介绍 ...2)http协议的被动性:在标准的HTTP请求响应语义中,浏览器发起请求,服务器发送一个响应,这意味着在浏览器发起新请求前,服务器不能发送新信息给客户端浏览器; 【2】htt
ajax
实现
轮询
我们都知道聊天是需要长连接的,一般使用websocket,那么在一些场景下我们不想使用比较耗费资源的长连接,又想实现数据监听,这时候我们就会使用
ajax
的
轮询
。 那
Ajax
的
轮询
是什么?其实
ajax
轮询
一般分为两种。 第一...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章