本帖最后由 huahuagongzi9999 于 2013-11-26 16:33:41 编辑

解决方案 »

  1.   


    服务端如何操作?需要监控吗?客户端如何操作?需要做个定时器吗?还是推送
    当然是服务器端清session啊。移动请求服务器端本身就没session可言。但是如果你自己实现了利用cookie实现了session的功能,那就和web一样清除session即可
      

  2.   


    服务端如何操作?需要监控吗?客户端如何操作?需要做个定时器吗?还是推送
    当然是服务器端清session啊。移动请求服务器端本身就没session可言。但是如果你自己实现了利用cookie实现了session的功能,那就和web一样清除session即可但是 session 是有有效时间的
      

  3.   

    这个功能我前几天刚用websocket实现了个,我们项目中需求iso,android手机用户不能重复登录,
    如果发生重复登录,就会挤掉原先的登录,并且即时提示给用户
    推荐用websocket,tomcat7有实现的demo,可以参考一下
    websocket超强的nio封装,实现浏览器或移动终端类似功能简直堪称神器!
      

  4.   


    我的思路是:
    用户登录的时候在session中存入userid和imei,
    比如:
    userId:10000
    现在有两台手机,分别为:
    A 设备 imei 111111111111111
    B 设备 imei 2222222222222222
    当在A设备登录时,1 判断session是否有记录;无记录,设置session,2 有记录,则判断是否是同一设备;是,则不管
    ,如果不是,则往之前的设备推送一条被迫下线的通知,并将新的IMEI设置进session中
    原理上,感觉这样可以实现,但是session是有失效时间的,如果失效了,则在当账号在B设备登录时,是无法获取A设备登录时的IMEI进行推送被迫下线的通知的
      

  5.   


    我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
    现在是想找一个比较好的实现单点登录的方式,
    保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统
      

  6.   


    我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
    现在是想找一个比较好的实现单点登录的方式,
    保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用
      

  7.   


    我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
    现在是想找一个比较好的实现单点登录的方式,
    保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用还是得用到session吗?
      

  8.   


    我的思路是:
    用户登录的时候在session中存入userid和imei,
    比如:
    userId:10000
    现在有两台手机,分别为:
    A 设备 imei 111111111111111
    B 设备 imei 2222222222222222
    当在A设备登录时,1 判断session是否有记录;无记录,设置session,2 有记录,则判断是否是同一设备;是,则不管
    ,如果不是,则往之前的设备推送一条被迫下线的通知,并将新的IMEI设置进session中
    原理上,感觉这样可以实现,但是session是有失效时间的,如果失效了,则在当账号在B设备登录时,是无法获取A设备登录时的IMEI进行推送被迫下线的通知的

    是的,不管你用的session保存还是ThreadLocal方式在后台做存储,都可以用websocket实现推送
    websocket是在后台把不同客户端的访问一次性进行绑定,维持连接
    如果一方发生变化,另一方立马会做出改变
    试试吧
      

  9.   


    我是负责java接口端的,用户登录及退出、包括推送消息都是我这边实现
    现在是想找一个比较好的实现单点登录的方式,
    保证同一账号只能在一台设备上登录,不能同时在多台手机设备上登录,不区分android还是ios系统比较简单的方式就是仿造http的登录态,登录之后给客户端发一个token,在服务器端记录下token和用户的映射标示这个用户已经登录,接收到登录请求的时候先检查一下用户有没有登录,如果有登录,给以前登录的客户端推送一个消息把它踢下线这种方式比较简单,但是有安全问题, 一旦用户截获了token,就可以仿造用户登录,在安全系数要求不高的场景可以用还是得用到session吗?session是web端的东西,你一个android客户端,是cs结构,哪来的session?
      

  10.   


    我的思路是:
    用户登录的时候在session中存入userid和imei,
    比如:
    userId:10000
    现在有两台手机,分别为:
    A 设备 imei 111111111111111
    B 设备 imei 2222222222222222
    当在A设备登录时,1 判断session是否有记录;无记录,设置session,2 有记录,则判断是否是同一设备;是,则不管
    ,如果不是,则往之前的设备推送一条被迫下线的通知,并将新的IMEI设置进session中
    原理上,感觉这样可以实现,但是session是有失效时间的,如果失效了,则在当账号在B设备登录时,是无法获取A设备登录时的IMEI进行推送被迫下线的通知的

    是的,不管你用的session保存还是ThreadLocal方式在后台做存储,都可以用websocket实现推送
    websocket是在后台把不同客户端的访问一次性进行绑定,维持连接
    如果一方发生变化,另一方立马会做出改变
    试试吧推送我可以用百度云推送,我们的应用里面IM有用到百度云推
      

  11.   

    使用struts2的过滤啊....登录的时候把session  id和一个唯一标示 加到数据库 利用过滤器 所有请求都调用 方法   主要检查是否登录,  登录就返回已登录....
      

  12.   


    没使用struts,只是用了springMVC +hibernate