Websocket学习笔记

WebSocket是什么?

WebSocket是一种在Web应用程序中实现实时双向通信的协议。它允许在客户端和服务器之间建立持久性连接,使得双方可以通过该连接进行长时间的数据传输。

WebSocket协议位于应用层,它提供了一种基于TCP协议的全双工通信机制,WebSocket在建立连接时依赖HTTP/HTTPS协议。

主要用途

WebSocket的主要用途是实现实时的双向通信。它可以用于许多不同类型的应用,包括但不限于:

  1. 在线聊天应用:允许用户实时发送和接收消息,而无需页面刷新或轮询服务器。
  2. 实时协作应用:支持多用户实时编辑文档或共享白板等场景。
  3. 实时游戏:允许多个玩家之间进行实时的游戏交互。
  4. 实时数据展示:用于显示实时数据,如股票市场变化、天气预报更新等。
  5. 实时通知和提醒:用于向用户发送实时的通知消息,如新邮件提醒、社交媒体通知等。
  6. 在线会议和视频通话:支持实时的音视频通信。

通信模式

WebSocket 支持以下几种通信模式:

  1. 一对一通信
    • WebSocket 最常见的使用方式是一对一的通信模式,其中一个客户端与一个 WebSocket 服务器之间建立一条连接,实现双向的实时通信。这种模式适用于聊天应用、实时通知等场景。
  2. 一对多通信
    • WebSocket 也支持多个客户端同时连接到同一个 WebSocket 服务器的通信模式。在这种模式下,服务器可以向所有连接到它的客户端广播消息,或者向特定的客户端发送消息。这种模式适用于群聊、广播通知等场景。
  3. 多对多通信
    • WebSocket 支持多对多的通信模式,其中多个客户端之间建立 WebSocket 连接,并且能够相互之间进行通信。在这种模式下,每个客户端都可以与其他客户端进行直接的双向通信,而服务器则充当中间人进行消息的转发和管理。这种模式适用于实时协作、实时游戏等应用场景。

优缺点

优点 缺点
实现了实时双向通信 不支持跨域通信
具有较的网络开销和较实时 部分浏览器和网络设备可能不支持 WebSocket
简单易用,易于集成到现有的 Web 应用中 需要额外的服务器资源来维护长连接
支持服务器主动向客户端推送数据 可能会增加服务器端的复杂性
可以减少 HTTP 请求头和响应头的大小,降低网络延迟流量 需要保证 WebSocket 连接的稳定性可靠性

报文格式

WebSocket报文格式相对简单,由Frame)组成。

基本的WebSocket帧结构包括:FINRSVOpcodeMaskPayload LengthMasking KeyPayload Data等字段。

  1. FIN (1 bit):表示该帧是否是消息的最后一帧。如果该位被设置为1,表示这是消息的最后一帧;如果为0,表示后续还有帧组成同一个消息。
  2. RSV1, RSV2, RSV3 (1 bit each):保留位,用于扩展,目前应该始终为0。
  3. Opcode (4 bits):指示帧的类型,有以下几种可能的取值:
    • 0x0:表示一个连续的数据帧。
    • 0x1:表示一个文本帧。
    • 0x2:表示一个二进制帧。
    • 0x8:表示一个连接关闭帧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值