需求:用户登录之后通过首页socket链接服务端.链接之后需要发送心跳包保持链接,但用户退出之后如果没有关闭该长链接,那么就会一直保存这个长链接在tomcat里面,
问题:但当用户第二次登录,如何找到上一次没断开的链接并控制,还有页面的状态内容,刚开始想的是把状态存数据库,后面发现对链接不太合理,有经验的大佬提供思路即可,谢谢

解决方案 »

  1.   

    服务端不处理吗?如果都是非正常关闭,那连接越积越多,不影响正常连接吗?这些连接请求放在数据库中不如放在缓存中,redis?
      

  2.   

    额这边就是一个客户端socket链接服务端读取服务端的信息的,关键是已链接的长连接二次登陆的可控性,一个socket链接还能放数据库吗
      

  3.   

    这种ajax轮询就好了!
      

  4.   


    是的,在保持心跳的情况下不会断,会存在tomcat里面,但是遇到特殊情况了,比如连接被服务端重置,或者遇到其他未知的异常无法捕获这种,那就无法获取到状态了,或者在连接没都断的时候,页面退出登录,再次登录的时候这种用什么获取之前没断开的链接状态并控制
      

  5.   


    是的,在保持心跳的情况下不会断,会存在tomcat里面,但是遇到特殊情况了,比如连接被服务端重置,或者遇到其他未知的异常无法捕获这种,那就无法获取到状态了,或者在连接没都断的时候,页面退出登录,再次登录的时候这种用什么获取之前没断开的链接状态并控制
    你是websocket?具体问题具体分析,如果是html页面,退出刷新页面,连接在刷新的时候断,如果是app,没有通信超过多长时间就会断连接,服务端做好配置即可,完全可以解决你的问题啊
    你回复我的内容我都有点把握不住你到底是担心啥?
      

  6.   

    用键值对的方式缓存到jvm中,只要服务器不重启,就一直在
      

  7.   

    其实你可以用webSocket,贼好用