实现 WebSocket 断开自动重连的 JavaScript 库

ReconnectingWebSocket 是一个小型的 JavaScript 库,封装了 WebSocket API 提供了在连接断开时自动重连的机制。

只需要简单的将:

ws = new WebSocket(‘ws://....‘);

替换成:

ws = new ReconnectingWebSocket(‘ws://....‘);

详见:https://github.com/fc653074701/reconnecting-websocket

或者:

//间隔发送心跳包数据给服务器,服务器在一定时间内发回心跳包响应,对比超时限定,如果超过设定的超时时间,则认为当前与服务器的websocket连接已经断开,关闭当前web socket连接,善后处理,例如重新连接,或者弹出提示……
function keepalive(ws) {
    var time = new Date();
    if (last_health != -1 && (time.getTime() - last_health > health_timeout)) {
        //连接断开,可设置重连或者关闭连接
        $("#keeplive_box").html("服务器没有响应.").css({
            "color" : "red"
        });
        //ws.close();
    } else {
        $("#keeplive_box").html("连接正常").css({
            "color" : "green"
        });
        if (ws.bufferedAmount == 0) {
            ws.send(‘~H#C~‘);
        }
    }
}

var ws = new WebSocket(to_url);
ws.onopen = function () {
    $("#statustxt").html("connected.");
    $("#send_btn").attr("disabled", false);
    heartbeat_timer = setInterval(function () {
            keepalive(ws)
        }, 3000);
}
时间: 2024-10-10 18:12:42

实现 WebSocket 断开自动重连的 JavaScript 库的相关文章

VPN断开自动重连

使用windows server 2008 R2自带服务建的PPTP,两台服务器通过VPN进行数据同步.连接一段时间后,VPN会自动断开,数据同步也会停止.这给工作带来了很大的麻烦. 检测网络中断,服务端需要开通ping,windows server 2008 R2默认没有开启icmp,需要在防火墙配置icmp响应,启用”文件和打印机共享(回显请求 - ICMPv4-In)“选项即可. VPN自动重连VPN: 1 @echo on 2 :a 3 rem 廷时60秒 4 ping -n 60 12

(接上一条)解决ssh隧道断开自动重连的问题

Sounds like you need autossh. This will monitor an ssh tunnel and restart it as needed. http://www.debianadmin.com/autossh-automatically-restart-ssh-sessions-and-tunnels.html Autossh example autossh -M 5122 -N -R 5022:localhost:22 rex Explanation: Fo

Jboss数据库连接断开自动重连

Jboss默认配置是数据库连接端口后,服务就会出现异常,无法访问,此时必须重启Jboss服务才能重新连接上数据库. 在jboss/server/defult/deploy/oracle-ds.xml中加入: <new-connection-sql>select 1 from dual</new-connection-sql>        <check-valid-connection-sql>select 1 from dual</check-valid-con

解读dbcp自动重连那些事(转)

本文转自:http://agapple.iteye.com/blog/791943 可以后另一篇做对比:http://agapple.iteye.com/blog/772507 同样的内容,不同的描述方式,不一样的效果. Hi all : 最近在做 offerdetail 优化时,替换了数据库驱动,从 c3p0 0.9.1 -> dbcp 1.4 , 顺便研究了下 dbcp 的自动重连的一套机制,也做一下分享,大家周知一下. 数据库链接 常见的问题: 1. 数据库意外重启后,原先的数据库连接池能

Netty 自动重连

from: http://www.dozer.cc/2015/05/netty-auto-reconnect.html 自动重连 用 Netty 写 Client 和 Server 的时候必须要去处理自动重连. Server 端启动时的错误,要去不断重试. Client 端不仅要处理启动时的错误,还要处理中途断开连接. Server 端的处理 和常规的代码相比,Server 端只要处理一个地方即可: public final class TcpServer { private volatile

解读dbcp自动重连那些事---转载

http://agapple.iteye.com/blog/791943 可以后另一篇做对比:http://agapple.iteye.com/blog/772507 同样的内容,不同的描述方式,不一样的效果. Hi all : 最近在做 offerdetail 优化时,替换了数据库驱动,从 c3p0 0.9.1 -> dbcp 1.4 , 顺便研究了下 dbcp 的自动重连的一套机制,也做一下分享,大家周知一下. 数据库链接 常见的问题: 1. 数据库意外重启后,原先的数据库连接池能自动废弃老

OpenWRT 路由配置 PPTP VPN + 断线自动重连 + chnroutes国内路由表

随着最近 Google 在国内已经完全无法访问,对我来说连接 VPN 已经成为了联网之后要做的第一件事. chnroutes 路由表 这个路由表集中了所有分配到中国大陆的 IP 段,根据 http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 每天自动更新,可使得在访问国内地址时不经过 VPN. 想想如果能够让家里的路由直接连接 VPN,在家连接 WiFi 的所有设备直接达到Fan墙的效果,应该很 Cool,所以最近在某宝整了一

用代码控制网络断开与重连

看到这个标题,如果你想说谁会这么蛋疼,有网不好好上,那么说明你还是一个纯洁的少年.自动重拨的需求所在多有,主要是为了绕过各大网站对相同IP地址的重复请求次数限制等等.具体的我不说了,说多了说我教坏小孩子.我最近研究这个只是因为我想写个软件自动播放和下载某个网站的视频,but这个网站一天只让同个IP免费看五个视频,我又抠不愿意花钱,但是又特别想多看多载几部.什么,你要我把网站地址告诉你?还是算了吧,传播XX(se)OO(qing)是违法的知道不. 按惯例,先声明:技术知识浩瀚无垠,笔者但求浅尝辄止

电信3G上网卡自动重拨

需要使用电信3G无线上网卡做一个测试,因为要长时间使用,在使用的过程中老掉线,所以做了一个自动重连的批处理,好了,闲话少叙,开工: 先建立一个拨号连接: 001.png 002.png 003.png 004.png 005.png 建立好了连接,测试一下命令效果,命令行连接上: 006.png 再用命令行断开连接: 007.png 这下脚本就可以写出来了: 脚本: redial.bat set interval1=5 set loop1=1 setlocal enabledelayedexpa