webSocket自动重连

ReconnectingWebSocket 一个小的JavaScript库,它装饰WebSocket API以提供WebSocket连接,如果连接断开,它将自动重新连接。
1.安装 我安装时因为当前项目里一些包没有升级,导致无法直接自动安装,故用了 url 安装
npm install https://github.com/joewalnes/reconnecting-websocket --save
提示: npm install ******* --save
加上 --save 参数会自动添加依赖到 package.json 中去。
2.使用 var ws = new WebSocket(’ ws:// … ');
替换为:
var ws = new ReconnectingWebSocket(’ ws:// … ');
3.参数设置

const wsUrl = process.env.BASE_WS + 'websocket' this.webSocket = new ReconnectingWebSocket(wsUrl) this.webSocket.onopen = this.webSocketOnOpen // 连接建立 this.webSocket.onmessage = this.webSocketOnMessage // 数据接收 this.webSocket.onclose = this.webSocketClose // 连接关闭 this.webSocket.onerror = this.webSocketOnError // 连接错误this.webSocket.debug = true // 记录调试消息(默认false) this.webSocket.automaticOpen = true // 实例化时立即尝试连接(默认true) this.webSocket.reconnectInterval = 1000 // 尝试重新连接之前延迟的毫秒数(默认1000) this.webSocket.maxReconnectInterval = 30000 // 延迟重新连接尝试的最大毫秒数(默认30000) this.webSocket.reconnectDecay = 1.5 // 重新连接延迟的增加率。允许重新连接尝试在问题仍然存在时退出。(默认1.5) this.webSocket.timeoutInterval = 2000 // 在关闭和重试之前等待连接成功的最长时间(默认2000,毫秒单位) this.webSocket.maxReconnectAttempts = null // 在放弃之前将进行的最大重新连接尝试次数。如果为null,则将继续永久重新连接尝试(默认null)

4.方法 ws.open()
打开重新连接Websocket
ws.close(code, reason)
关闭WebSocket连接或连接尝试(如果有)。如果连接已经CLOSED,则此方法不执行任何操作。
code是可选的结束代码(默认值1000)。https://tools.ietf.org/html/rfc6455#section-7.4.1
reason是套接字关闭的可选原因。https://tools.ietf.org/html/rfc6455#section-7.1.6
ws.refresh()
如果仍然打开则刷新连接(关闭然后重新打开)。
ws.send(data)
通过WebSocket连接将数据传输到服务器。
接受@param数据文本字符串,ArrayBuffer或Blob
webSocket自动重连
文章图片

【webSocket自动重连】github连接:https://github.com/joewalnes/reconnecting-websocket

    推荐阅读