websocket是HTML5下一个不错的网络协议解决方案,有一个场景很多猿猿都会遇到,手机锁屏后大约60秒,IOS会自动断开websocket连接,连接丢失了,那我们的数据也就断了。websocket 断线重连方案如下:

ReconnectingWebSocket

reconnecting websocket是一个javascript封闭的websocket库,非常小,压缩后仅有3KB。它的功能是当websocket断线后自动帮你重连。使用方法很简单:

只要把

var ws = new WebSocket('ws://....');

替换成

var ws = new ReconnectingWebSocket('ws://....');

就行了,当websocket断开着它会帮你自动重连,socket永不断线!

它支持事件

onopen
onmessage
onmessage
onmessage
onclose // At this point the WebSocket instance is dead.

websocket 断线重连原理实现

var ws = new WebSocket('ws:../../websocket');
ws.onmessage = function(msg){
console.log('msg:',msg);
//do something
};
ws.onclose = function(){
console.log('closed....');
};

实现websocket断线重连

var ws = new WebSocket('ws:../../websocket');
ws.onmessage = function(msg){
console.log('msg:',msg);
//do something
};
//把刚才干的事情重写一遍
function reconnect (){
rews = new WebSocket('ws:../../websocket');
rews.onmessage = function(){
//dosomthing
};
rews.onclose = function(){
//dosomthing
};
}
//每隔5秒去调用一次
var disConnect = function(){
setTimeout(function(){
reconnect();
},5000);
}
//函数放在onclose里
ws.onclose = disConnect;

转自 https://www.uedbox.com/websocket-reconnect/

reconnecting-websocket.js的更多相关文章

  1. Websocket -- JS的前端页面

    一个html5 WebSocket + JS的简单Echo例子,例子代码演示效果猛戳链接:websocket例子(打开页面,稍等一会) 使用一个文本编辑器,把下面代码复制保存在一个 websocket ...

  2. websocket js 代码样例

    function StartWebSocket(wsUri) { websocket = new WebSocket(wsUri); websocket.onopen = function(evt) ...

  3. MQTT协议 Websocket JS客户端

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. webSocket详解

    WebSocket 实战http://www.ibm.com/developerworks/cn/java/j-lo-WebSocket/index.html 转自IBMdeveloperWorks ...

  5. websocket实例(显示文件导入处理进度)

    大批量数据导入时,需要即时显示对文件的处理进度.考虑ajax轮询太浪费资源,使用websocket实现. 项目使用Spring MVC(3.1),与websocket结合要求版本4.0以上.所以没有使 ...

  6. 结合WebSocket编写WebGL综合场景示例

    在WebGL场景中导入多个Babylon骨骼模型,在局域网用WebSocket实现多用户交互控制. 首先是场景截图: 上图在场景中导入一个Babylon骨骼模型,使用asdw.空格.鼠标控制加速度移动 ...

  7. WebSocket 实战

    http://www.ibm.com/developerworks/cn/java/j-lo-WebSocket/ 本文介绍了 HTML5 WebSocket 的由来,运作机制及客户端和服务端的 AP ...

  8. 基于Tomcat7、Java、WebSocket的服务器推送聊天室

    http://blog.csdn.net/leecho571/article/details/9707497 http://blog.fens.me/java-websocket-intro/ jav ...

  9. 使用 HTML5 webSocket API实现即时通讯的功能

    project下载地址:http://download.csdn.net/detail/wangshuxuncom/6430191 说明: 本project用于展示怎样使用 HTML5 webSock ...

  10. 使用Jetty搭建Java Websocket Server,实现图像传输

    https://my.oschina.net/yushulx/blog/298140 How to Implement a Java WebSocket Server for Image Transm ...

随机推荐

  1. 关于CaciiEZ端口流量阀值报警的设置

    作者:邓聪聪 环境:CactiEZ v10.1 为了更高效的发现问题,在非工作期间,公司的网络可能会出现一些故障,为了及时解决问题,所以做了一个流量监控,并以邮件的方式发送流量异常的端口,以便及时了解 ...

  2. boost::function 介绍

    本片文章主要介绍boost::function的用法. boost::function 就是一个函数的包装器(function wrapper),用来定义函数对象. 1.  介绍 Boost.Func ...

  3. Linux内核的整体架构简介

    1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统.之后,会介绍Linux内核源文件的目录结构,并和各个软 ...

  4. DHCP Server (推荐使用Windows)

    一些小的服务 windows做的比linux好 DHCP服务概述: 名称:DHCP (Dynamic Host Configuration Protocol --动态主机配置协议) 功能:是一个局域网 ...

  5. mgo mode说明

    mgo 是 MongoDB 的 Golang 驱动. 连接池 我们通过 Dial 函数创建一个新的 session: session, err := mgo.Dial(url) 创建的 session ...

  6. CF 545C

    题意: 砍树, 树会向左或者向右倒,数不能倒重叠, 问最多可以砍多少树 思路: 贪心 + Dp吧, 树要尽可能网左倒,这样对后面的树影响较小, 才是最优状态 #include<iostream& ...

  7. win 系统设置weblogic 进行定时自动重启并删除其日志和缓存文件,定时监控cpu是否达到100%并重启weblogic服务

    一:如何在win系统设置 任务管理:请百度查询 win系统设置 任务管理 二:设置 webogic 重启并删除垃圾文件的bat脚本 sqlplus /nolog @C:\Users\Administr ...

  8. clock gen sdk 代码笔记

    int ClockConfig(void) { u32 DIVCLK_DIVIDE = 10; u32 CLKFBOUT_MULT = 53; u32 CLKFBOUT_FRAC = 625; u32 ...

  9. MongoDB的简单操作

    一.简介 二.MongoDB基础知识 三.安装 四.基本数据类型 五.增删改查操作 六.可视化工具 七.pymongo 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoD ...

  10. Django Rest Framework(2)

    目录 一.认证 二.权限 三.限制访问频率 四.总结 一.认证(补充的一个点) 认证请求头 #!/usr/bin/env python # -*- coding:utf-8 -*- from rest ...