Websocket简介

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,旨在替代HTTP的轮询和Comet技术,实现低延迟、高效率的实时通信。它基于TCP,URL以ws/wss开头,握手过程依赖HTTP。WebSocket 数据传输稳定,数据包头小,支持多种消息类型。目前广泛应用于各种实时应用场景,如监控、即时通信等。

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

一、背景

    http协议是一种单向的网络协议。其特点是只能有客户端向服务端主动发起请求,服务端被动响应。在实际场景中,很多应用比如监控、即时通信、即时报价等都需要将服务端发生的变化实时推送给客户端。传统的http协议要实现这种效果,只能通过客户端不断地刷新、发送请求实现,效率不高。

Web中实现实时通信,目前主要有如下几种方式:

    1、轮询(polling)

    这种方式通过客户端按一定的频率间隔向服务端发送查询请求实现。比如,在js中通过setTimeout设置定时器,以一定的频率间隔发送ajax请求到服务端获取最新的数据。如下图所示:


    轮询通过周期查询实现实时推送的效果。缺点也很明显:存在空载查询,浪费带宽,消耗服务器资源。间隔时间短,空载查询就多。间隔时间长,达不到实时推送的效果。

    2、长轮询(comet)

    这种方式是对轮询方式的一种改进。原理是客户端发起查询请求后,服务端会阻塞这个请求直到有数据返回或者连接超时。当客户端收到响应后,再发起一个查询请求等待服务端响应。如下图所示:


    长轮询通过阻塞请求,解决了空载查询的问题。但是&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值