完美解决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 相关文章推荐
Js组件的一些写法
Sep 10 Javascript
加速IE的Javascript document输出的方法
Dec 02 Javascript
js下将字符串当函数执行的方法
Jul 13 Javascript
JS控制一个DIV层在指定时间内消失的方法
Feb 17 Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
Nov 23 Javascript
JavaScript中对象property的删除方法介绍
Dec 30 Javascript
jQuery表单设置值的方法
Jun 30 jQuery
Angular 数据请求的实现方法
May 07 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
使用 UniApp 实现小程序的微信登录功能
Jun 09 Javascript
Jquery Fade用法详解
Nov 06 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
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python使用递归解决全排列数字示例
2014/02/11 Python
python使用正则表达式提取网页URL的方法
2015/05/26 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
Python自动生产表情包
2017/03/17 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
学生就业推荐信
2013/11/13 职场文书
化学专业毕业生自荐信
2013/11/15 职场文书
新闻报道策划方案
2014/06/11 职场文书
检讨书范文300字
2015/01/28 职场文书
节约用电通知
2015/04/25 职场文书
民事二审代理词
2015/05/25 职场文书
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python