完美解决spring websocket自动断开连接再创建引发的问题


Posted in Javascript onMarch 02, 2017

问题:由于 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(); 
}

以上这篇完美解决spring websocket自动断开连接再创建引发的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 必知必会之closure
Sep 21 Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 Javascript
浅谈Javascript中深复制
Dec 01 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
jquery dataview数据视图插件使用方法
Dec 23 Javascript
基于JavaScript实现全选、不选和反选效果
Feb 15 Javascript
基于vue组件实现猜数字游戏
May 28 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
Aug 16 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 Javascript
React中使用外部样式的3种方式(小结)
May 28 Javascript
Vue如何实现组件间通信
May 15 Vue.js
vue+springboot实现登录验证码
May 27 Vue.js
vue-dialog的弹出层组件
May 25 #Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
Mar 01 #Javascript
基于Bootstrap的网页设计实例
Mar 01 #Javascript
JS中的作用域链
Mar 01 #Javascript
javascript html5轻松实现拖动功能
Mar 01 #Javascript
详解数组Array.sort()排序的方法
May 09 #Javascript
JavaScript中数组Array.sort()排序方法详解
Mar 01 #Javascript
You might like
PHPMailer 中文使用说明小结
2010/01/22 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
laravel学习教程之关联模型
2016/07/30 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
javascript String 对象
2008/04/25 Javascript
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Django 开发环境配置过程详解
2019/07/18 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
自我评价正确写法范文
2013/12/10 职场文书
关于旷工的检讨书
2014/02/02 职场文书
酒店端午节促销方案
2014/02/18 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
暑期工社会实践报告
2015/07/13 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
教你怎么用python selenium实现自动化测试
2021/05/27 Python