zoukankan      html  css  js  c++  java
  • spring websocket自动断开连接再创建引发的问题解决方案

    问题:由于 web session 超时时间为 30 分钟,如用户在 web session 规定时间内没有退出系统,但由于其它原因 用户却断开的 websocket 的连接,如果用户还要聊天或是其它 websocket 方面的操作,那么就只能重新连接...

    看代码:

    var socket;
    var $ = function() {
        return document.getElementById(arguments[0]);
    }
    var log = function(msg) {
        $("log").innerHTML ? $("log").innerHTML += "<br />" + msg : $("log").innerHTML = msg;
    }
    var initWebSocket = function() {
        if (window.WebSocket) {
            socket = new WebSocket("ws://127.0.0.1:8080/websocket");
            socket.onmessage = function(event) {
                var json = JSON.parse(event.data);
                document.getElementById("message").value = json.message;
            };
            socket.onopen = function(event) {
                log("Web Socket opened!");
            };
            socket.onclose = function(event) {
                log("Web Socket closed.");
            };
            socket.onerror = function(event) {
                log("Web Socket error.");
            };
        } else {
            log("Your browser does not support Web Socket.");
        }
    }
    var send = function() {
        var data = function() {
            socket.send("{'send':1,'take':2,'message':" + Math.random() + "}");
        };
        if (socket.readyState !== 1) {
            socket.close();
            initWebSocket();
            setTimeout(function() {
                data();
            }, 250);
        } else {
            data();
        };
     
    }
    window.onload = function() {
        initWebSocket();
    }
    
  • 相关阅读:
    错误解决mysql
    (一)熟悉执行流程——基于ThinkPHP3.2的内容管理框架OneThink学习
    版权控制之zend guard 6.0使用教程
    IP进制站群原理
    多线程更新已排序的Datagridview数据,造成数据错位
    压缩html 减小存储空间
    DataGridView导入导出excel
    软件下载目录
    java反射
    JTA
  • 原文地址:https://www.cnblogs.com/interdrp/p/4828573.html
Copyright © 2011-2022 走看看