锁定老帖子 主题:AJAX 反推技术的一点疑问
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-11
举个例子吧,我有一个页面要可以 即时显示出当前的登陆用户,用长连接,和用长轮询,都应该是怎么一个思路来做?谢谢了
|
|
返回顶楼 | |
发表时间:2011-09-11
squll369 写道 举个例子吧,我有一个页面要可以 即时显示出当前的登陆用户,用长连接,和用长轮询,都应该是怎么一个思路来做?谢谢了
你这需求不合理,当前登录的用户只可能是一个,在他退出以前都不会变,不会变的内容怎么会需要轮询或长链接呢? |
|
返回顶楼 | |
发表时间:2011-09-11
squll369 写道 举个例子吧,我有一个页面要可以 即时显示出当前的登陆用户,用长连接,和用长轮询,都应该是怎么一个思路来做?谢谢了
我对你需求的理解 1.先完成一个登陆功能,任意输入一个用户名都算登陆成功。 2.在成功页面successful.jsp中将用户名保存到session 范围。 3完成发送的操作方法。建立一个 Message 对象,用来保存发送的消息。 4.建立 AjaxServlet,实现消息的保存功能,建议将消息保存到application 属性范围。 5。在页面的 onload 方法中,加入一个js 的AJAX 调用,判断当前application 范围中是否有我发送的或我接收的消息。 6在 Servlet 中完成验证。 首先取得所有与该用户相关的消息(发送或接收人是当前用户),并放入到List集合中,其次判断集合中的数量是否与上一次验证时相同,如果原始消息数小于新的消息数则提示有新消息,最后将l原始消息数重新设置回去。防止下次验证又输出原有消息。 7.回调函数中显示结果。 |
|
返回顶楼 | |
发表时间:2011-09-11
int08h 写道 squll369 写道 举个例子吧,我有一个页面要可以 即时显示出当前的登陆用户,用长连接,和用长轮询,都应该是怎么一个思路来做?谢谢了
你这需求不合理,当前登录的用户只可能是一个,在他退出以前都不会变,不会变的内容怎么会需要轮询或长链接呢? 不是这个意思,比如,现在 iteye上可以显示所有的在线用户,如果,有一个用户下线了,页面上的在线列表立刻就少了一个人,如果又有一个新用户登录了,在线列表里立刻就加上了一个。 |
|
返回顶楼 | |
发表时间:2011-09-12
squll369 写道 int08h 写道 squll369 写道 举个例子吧,我有一个页面要可以 即时显示出当前的登陆用户,用长连接,和用长轮询,都应该是怎么一个思路来做?谢谢了
你这需求不合理,当前登录的用户只可能是一个,在他退出以前都不会变,不会变的内容怎么会需要轮询或长链接呢? 不是这个意思,比如,现在 iteye上可以显示所有的在线用户,如果,有一个用户下线了,页面上的在线列表立刻就少了一个人,如果又有一个新用户登录了,在线列表里立刻就加上了一个。 如果反应要这么灵敏,那貌似只能用socket吧,页面隐藏一个flex组件做服务端,可以隐藏在一个iframe中,这个页面要求不被刷新,除非整个浏览器都被刷新,当用户登录时服务器记录下所有IP,当在线人数发生改变时,服务器作为客户端给所有未下线IP的发送UDP数据报就行了吧,这样压力会小很多。 |
|
返回顶楼 | |
发表时间:2011-09-12
轮循无非是window.setInterval(fun,time)这些东西。
|
|
返回顶楼 | |
发表时间:2011-09-12
squll369 写道 int08h 写道 squll369 写道 举个例子吧,我有一个页面要可以 即时显示出当前的登陆用户,用长连接,和用长轮询,都应该是怎么一个思路来做?谢谢了
你这需求不合理,当前登录的用户只可能是一个,在他退出以前都不会变,不会变的内容怎么会需要轮询或长链接呢? 不是这个意思,比如,现在 iteye上可以显示所有的在线用户,如果,有一个用户下线了,页面上的在线列表立刻就少了一个人,如果又有一个新用户登录了,在线列表里立刻就加上了一个。 有一定的刷新频率的吧 原理还是不断请求服务器端,刷新客户端的数据 google的gmail最早用的就是ajax技术,数据不断变化 |
|
返回顶楼 | |
发表时间:2011-09-12
长连接的session超时怎么去控制呢
轮询Session也不会超时了 |
|
返回顶楼 | |
发表时间:2011-09-12
嗯。 好贴。 一直也想弄清楚 推技术的原理。
|
|
返回顶楼 | |
发表时间:2011-09-13
轮询常见有2种
1为客户端通过js调用(setTimeout或setInterval),定时向服务端发送http请求、服务端将处理结果返回给客户端 2为客户端通过js发送请求到服务端,服务端通过休眠技术来维持该线程(不是无限,而是根据实际的性能要求定出一个合适的时间),在需要推或者到时间的时候,完成本次请求、客户端根据http返回的指令来进行操作同时继续下一次请求。 印象里还有一种模式,忘了,希望对你有帮助。 |
|
返回顶楼 | |