完美解决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 live()调用不存在的解决方法
Feb 26 Javascript
js点击文本框后才加载验证码实例代码
Oct 20 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
AngularJS基础 ng-selected 指令简单示例
Aug 03 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
完美解决IE9浏览器出现的对象未定义问题
Sep 29 Javascript
d3绘制基本的柱形图的实现代码
Dec 12 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
浅谈小程序globalData的那些事儿
Nov 01 Javascript
JavaScript实现答题评分功能页面
Jun 24 Javascript
jQuery中getJSON跨域原理的深入讲解
Sep 02 jQuery
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 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中养成7个面向对象的好习惯
2010/07/17 PHP
php实现rc4加密算法代码
2012/04/25 PHP
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
js实现3D旋转相册
2020/08/02 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python如何快速实现分布式任务
2017/07/06 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
opencv与numpy的图像基本操作
2019/03/08 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
python tornado使用流生成图片的例子
2019/11/18 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
入党自荐书范文
2014/03/09 职场文书
佛光寺导游词
2015/02/10 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python