善用Websocket替代前端轮询请求接口

本文探讨了WebSocket作为HTML5的一项技术,如何替代前端的定时轮询调用来实现实时获取后台数据,从而减少不必要的带宽消耗。通过建立长链接,WebSocket允许客户端监听服务端信息,提高了通信效率。此外,还提及了WebSocket对象的相关事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、由来

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

实际场景:实时获取后台数据,首先想到的一定是ajax每隔几秒不断轮询调用后台接口,这种方式可以实现,简单粗暴,但是一次次的请求会浪费很多的带宽资源。

在java中,有消息中间件MQ,客户端向Broker中间件发消息,服务端监听Broker,也可替换http接口调用实现数据传输。

html5为了优化轮询调用,也提供了类似方式。

WebSocket通信协议,建立一个长链接,客户端监听服务端信息,此链接可手动关闭。

var Socket = new WebSocket(url, [protocol] );

二、事件

以下是 WebSocket 对象的相关事件。假定我们使用了以上代码创建了 Socket 对象:

事件 事件处理程序 描述
open Socket.onopen 连接建立时触发
message Socket.onmessage 客户端接收服务端数据时触发
error Socket.onerror 通信发生错误时触发
close Socket.onclose 连接关闭时触发

 

<!DOCTYPE HTML>
<html>
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值