完美解决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 相关文章推荐
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
你必须知道的JavaScript 变量命名规则详解
May 07 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
JavaScript给url网址进行encode编码的方法
Mar 18 Javascript
js获取Html元素的实际宽度高度的方法
May 19 Javascript
对js eval()函数的一些见解
Aug 15 Javascript
Angular2 父子组件数据通信实例
Jun 22 Javascript
Vue-Cli中自定义过滤器的实现代码
Aug 12 Javascript
vue axios 在页面切换时中断请求方法 ajax
Mar 05 Javascript
js瀑布流布局的实现
Jun 28 Javascript
修改NPM全局模式的默认安装路径的方法
Dec 15 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
PHP 木马攻击防御技巧
2009/06/13 PHP
PHP 全角转半角实现代码
2010/05/16 PHP
php中Smarty模板初体验
2011/08/08 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
python求素数示例分享
2014/02/16 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
法人委托书范本
2014/04/04 职场文书
文明班级申报材料
2014/12/24 职场文书
总经理助理岗位职责
2015/01/31 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
解决Go gorm踩过的坑
2021/04/30 Golang
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript