完美解决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 Ajax 全解析
Feb 08 Javascript
jquery $.ajax各个事件执行顺序
Oct 15 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
Oct 11 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 Javascript
Bootstrap Table使用方法解析
Oct 19 Javascript
用原生js做单页应用
Jan 17 Javascript
Angular指令之restict匹配模式的详解
Jul 27 Javascript
mpvue写一个CPASS小程序的示例
Sep 04 Javascript
详解JavaScript中操作符和表达式
Sep 12 Javascript
vue中的mvvm模式讲解
Jan 31 Javascript
浅入深出Vue之自动化路由
Aug 06 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 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 ADODB使用方法集锦
2008/03/25 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
Python实现配置文件备份的方法
2015/07/30 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
业务员薪酬管理制度
2014/01/15 职场文书
早读迟到检讨书
2014/01/24 职场文书
ktv中秋节活动方案
2014/01/30 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
golang定时器
2022/04/14 Golang