web上的消息提示
A用户使用C账号登录,并保存到session,B用户也使用C账号登录,要将A清除并提示用户,有什么好的方案吗?不想在页面轮询 --------------------编程问答-------------------- 这个是不是要根据IP判断呢?A用户登陆之后会将相关信息set进session里。
当B用户登陆的时候会set其相关信息进入。
这个时候对比两个session内的信息、是否用户名相同但IP不同。
如果成立。则清掉A用户的session信息。并且提示相应内容。
个人粗浅的理解 - -# --------------------编程问答-------------------- 同上啊 --------------------编程问答-------------------- 时间戳 --------------------编程问答-------------------- 把用户A拿掉简单,怎么在拿掉之前通知A,http是无状态的,B的请求给服务器,服务器怎么通知A? --------------------编程问答--------------------
楼主此言差矣。
关于A和B使用C账号登录,必须保证一个用户是有效的,就是后者登录有效并从SESSION中踢掉A的数据信息。
1、B登录若账号密码正确,此时拿其信息和SESSION中比对,若存在相同信息那A的数据必须从SESSION中清空,即将该账号信息从SESSION中移除。
2、移除信息后B的帐户是生效的,那此时A该如何处理?如何提示有相同账号登录?有以下方法可选:
--》DWR长连接:可以随时通过javascript的SESSIONID告知A用户,但长连接不可取。
--》定时请求对服务器是资源的消耗,也不可取。
--》找中间容器处理:KEY--VALUE,其中KEY存储用户ID,VALUE存储用户登录的IP地址。初始值均为空。若A先登录,B再登录时,OK就将A的KEY和VALUE记录吧。当A通过Action操作时,会有易做图,先拦截请求到中间容器中查是否有该KEY和VALUE,若有说明有人也在用次账号,好吧,那就直接跳转到某一页面告知有相同账号在别处登录。但是通过IP地址并不能完全控制,比较理想的是记录及其的MAC地址。
--------------------编程问答-------------------- 观望........... --------------------编程问答--------------------
呵呵,是B登录后,服务器通知A,而不是A有操作时才通知。 --------------------编程问答-------------------- 单点登录。。。。可以使用struts2.0的易做图来操作 方便快捷。
session中的值又可以获取。。那么一切情况就没有了 。判断在服务器中 判断后通知
A 这样服务器应该轻易而已就做到了。。lz酌情处理 --------------------编程问答--------------------
哦,那就用长连接吧,支持1000个连接没有问题(项目经验),当时是用在股票信息上。
或者用FLASH的UDP协议建立长连接,不过都一样。facebook、gmail用的技术都是长连接,不过你拼不过人家的服务器。如果连接数《=1000,木有问题的。
补充:Java , Web 开发