完美解决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异步编程的4种方法让你写出更出色的程序
Jan 17 Javascript
jquery中文乱码的多种解决方法
Jun 21 Javascript
php与js的区别是什么
Aug 05 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
Jan 28 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
vue.js入门教程之基础语法小结
Sep 01 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
jquery实现百叶窗效果
Jan 12 Javascript
Vue.js学习笔记之修饰符详解
Jul 25 Javascript
vue-cli3.0 特性解读
Apr 22 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
jQuery实现动态向上滚动
Dec 21 jQuery
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
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
解析Python中的__getitem__专有方法
2016/06/27 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
python ubplot使用方法解析
2020/01/10 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
大二学生学习个人自我评价
2014/01/19 职场文书
户外婚礼策划方案
2014/02/08 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
农业项目建议书
2014/08/25 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
SQL Server删除表中的重复数据
2022/05/25 SQL Server