当前位置: 首页 > news >正文

上海营销型网站开发免费详情页模板网站

上海营销型网站开发,免费详情页模板网站,商业网站有什么作用,支付招聘网站套餐费用怎么做帐WebSocket是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。 1、创建webSocket // Create WebSocket connection. const sock…

WebSocket是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

1、创建webSocket

// Create WebSocket connection.
const socket = new WebSocket('ws://localhost:8080');

2、websocket事件

事件事件处理程序描述
openSocket.onopen连接建立时触发
messageSocket.onmessage客户端接收服务端数据时触发
errorSocket.onerror通信发生错误时触发
closeSocket.onclose

连接关闭时触发

3、WebSocket方法

方法描述
Socket.send()使用连接发送数据
Socket.close()关闭连接

WebSocket的心跳机制

问题:

(1)websocket在连接后,如果长时间服务端和客户端不发消息,服务端会把websocket给断开。

(2)存在网络忽然断开的情况,这时服务器端并没有触发onclose的事件。服务器会继续向客户端发送多余的信息,这些数据会丢失。

心跳重连机制

为了解决上面的问题,就需要⼀种机制来检测客户端和服务端是否处于正常的连接状态。因此就有了websocket的心跳机制。

⼼跳机制是客户端每隔⼀段时间会向服务端发送⼀个数据包,告诉服务端自己还活着,同时客户端会根据服务端是否会回传⼀个数据包来确定服务端是否还活着。
如果客户端没有收到回复,表示websocket断开连接或者网络出现问题,就需要重连

const socket = new WebSocket('ws://localhost:8080'); // WebSocket 建立连接
const heartCheck = initHeartCheck();// 初始化心跳检测对象// WebSocket建立连接成功
socket.addEventListener('open', function (event) {heartCheck.start();// 启动心跳检测socket.send('Hello Server!');
});
// WebSocket接受到服务端消息
socket.addEventListener('message',function(event){heartCheck.start();// 启动心跳检测
})
// WebSocket 连接被关闭
socket.addEventListener('close',function(event){heartCheck.reset();// 启动心跳检测
})
// WebSocket 连接因错误而关闭
socket.addEventListener('error',function(event){heartCheck.reset();// 启动心跳检测
})function initHeartCheck() {return {timeout: 2 * 1000, // 每2s向服务端发送一次消息serverTimeout: 10 * 1000, // 10s收不到服务端消息算超时timer: null,serverTimer: null,reset() { // 心跳检测重置clearTimeout(this.timer);clearTimeout(this.serverTimer);this.timer = null;this.serverTimer = null;return this;},start() { // 心跳检测启动this.reset();this.timer = setTimeout(() => { socket.send('ping'); // 定时向服务端发送消息if (!this.serverTimer) {this.serverTimer = setTimeout(() => {// 关闭连接触发重连console.log(new Date().toLocaleString(), "not received pong, close the websocket");socket.close(); //关闭websocket或根据业务需求去重连 }, this.serverTimeout);}}, this.timeout);},}}

http://www.yayakq.cn/news/555071/

相关文章:

  • 怎么识别网站开发语言新网wordpress
  • 佛山招收网站设计网站程序有哪些
  • 购物网站,购物车界面如何做网页如何赚钱
  • 建设网官方网站免费做全网解析电影网站赚钱
  • 餐饮业网站建设招标书空间查看网站
  • 电梯网站建设无锡网站建设 君通科技
  • 扫码支付做进商城网站房地产网站怎么做
  • 凡科建的网站怎么样怎么做网站赚流量
  • 做网站的需要哪些职位网站开发的前端框架有哪些
  • 太原网站制作推荐公司网站怎么做产品图片
  • 微信与网站对接企业年金查询app
  • 宠物用品销售网站建设和技术现状高端饰品品牌有哪些
  • 域名注销期间网站还能打开吗网站开发实例模板
  • 重庆建设网站公司哪家好aso优化工具
  • 物联网平台网站推广网站有哪些平台
  • 网站导航固定欧美网站建设公司排名
  • 入侵wordpressseo实战密码pdf
  • 泸州网站seowordpress默认分类链接
  • 河南省洛阳市建设银行的网站北京网站设计 培训
  • 源码上传网站wordpress亲子主题
  • 商业网站建设试题设计工资一般多少
  • 潘嘉严个人网站什么是网站的推广
  • 哈尔滨教育学会网站建设楚雄州城乡建设局网站
  • 深圳网站设计go4k视频素材网站
  • 南美洲网站后缀泰州北京网站建设
  • 网站建设策划方企业查询系统官网河北
  • 如何做直播类网站设计公司网站首页显示
  • 做app_需要先做网站吗花都网站制作公司
  • 网站设计开发方案深圳高端医疗器械公司
  • 个人网站的主题编程软件下载安装