完美解决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 相关文章推荐
JQuery 绑定事件时传递参数的实现方法
Oct 13 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
Jul 17 Javascript
微博@符号的用户名提示效果。(想@到谁?)
Nov 05 Javascript
Javascript的时间戳和php的时间戳转换注意事项
Apr 12 Javascript
浅谈javascript 归并方法
Jan 21 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
详解堆的javascript实现方法
Nov 29 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
Jan 15 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
Oct 20 Javascript
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中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
Python设计模式之命令模式简单示例
2018/01/10 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
python看某个模块的版本方法
2018/10/16 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
超市5.1促销活动
2014/01/15 职场文书
应届护士求职信范文
2014/01/26 职场文书
好听的队名和口号
2014/06/09 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2014年话务员工作总结
2014/11/19 职场文书
政协工作总结2015
2015/05/20 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
python如何获取网络数据
2021/04/11 Python