• 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();
    }
    
  • 相关阅读:
    技术选型总结
    这些年来收集的好用的好玩的软件,强烈推荐给大家
    如何解决markdown中图片上传的问题
    01.如何把.py文件打包成为exe,重点讲解pyinstaller的用法
    Asp.net中汉字转换成为拼音
    程序员常用网址收集
    通过IP来判断所在城市
    以太坊
    分布式系统领域经典论文翻译集
    T50
  • 原文地址:https://www.cnblogs.com/interdrp/p/4828573.html
Copyright © 2020-2023  润新知