美文网首页
2018-03-28 spring websocket java

2018-03-28 spring websocket java

作者: 楽祀 | 来源:发表于2018-03-28 16:39 被阅读0次

    之前文章介绍了websocket注入service快速解决方案

    在运行之后无异常, 但是今天发送信息时后台抛出java.lang.IllegalStateException异常, 虽然对运行无影响, 但是这不是要逼死强迫症吗, 于是开始百度

    异常完整信息:

        java.lang.IllegalStateException: the remote endpoint was in state [TEXT_PARTIAL_WAITING]

    异常为response.sendRedirect抛出  websocket尝试在同一时间操作session导致

    在sendMessage的时候将session锁住

        synchronized(session) {

            session.sendMessage()}

    发送信息的时候不会报错, 但是前端异常结束仍然会抛出这个错误,因为没有执行closeSocket操作,后台不知道这个session已经断开,没有移除队列。在获取错误方法中添加移除操作,就行了。抛一次错就将这个session移除,前端重新连接就好了

    PS:这里划重点:多半都是因为你在捕获错误后对前端发送信息导致,在错误发生的时候此session就已经断开了,再通过这个发信息前端收不到肯定就是等待状态了啊。。。因为我用的是安全队列,刚开始我也想了半天为什么会有阻塞,其实真正根源在这里!!

    相关文章

      网友评论

          本文标题:2018-03-28 spring websocket java

          本文链接:https://www.haomeiwen.com/subject/jyfucftx.html