当前位置:网站首页>WebSocket的理解以及应用场景
WebSocket的理解以及应用场景
2022-06-25 06:42:00 【沐日(Shrek)】
一、对 WebSocket 的理解
WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。
WebSocket 的出现就解决了半双工通信的弊端。它最大的特点是:服务器可以向客户端主动推动消息,客户端也可以主动向服务器推送消息。
WebSocket原理::客户端向 WebSocket 服务器通知一个带有所有接收者ID的事件,服务器接收后立即通知所有活跃的客户端,只有ID在接收者ID序列中的客户端才会处理这个事件。
WebSocket 特点的如下:
- 支持双向通信,实时性更强
- 可以发送文本,也可以发送二进制数据‘’
- 建立在TCP协议之上,服务端的实现比较容易
- 数据格式比较轻量,性能开销小,通信高效
- 没有同源限制,客户端可以与任意服务器通信
- 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL
- 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
二、Websocket的使用方法如下:
// 在index.html中直接写WebSocket,设置服务端的端口号为 9999
let ws = new WebSocket('ws://localhost:9999');
// 在客户端与服务端建立连接后触发
ws.onopen = function() {
console.log("Connection open.");
ws.send('hello');
};
// 在服务端给客户端发来消息的时候触发
ws.onmessage = function(res) {
console.log(res); // 打印的是MessageEvent对象
console.log(res.data); // 打印的是收到的消息
};
// 在客户端与服务端建立关闭后触发
ws.onclose = function(evt) {
console.log("Connection closed.");
};
三、应用场景
基于websocket的事实通信的特点,其存在的应用场景大概有:
- 弹幕
- 媒体聊天
- 协同编辑
- 基于位置的应用
- 体育实况更新
- 股票基金报价实时更新
边栏推荐
猜你喜欢

Sword finger offer II 027 Palindrome linked list

How to use printf of 51 single chip microcomputer

环网冗余式CAN/光纤转换器的CAN光端机在消防火灾联网报警系统中的应用

Summary of small problems in smartbugs installation

Modular programming of LCD1602 LCD controlled by single chip microcomputer

What are the problems with traditional IO? Why is zero copy introduced?

Take you through the normalization flow of GaN

Function template_ Class template
![Different paths ii[dynamic planning improvement for DFS]](/img/bb/1e1cee22b9de954de242d299a1a0eb.png)
Different paths ii[dynamic planning improvement for DFS]

How much do you know about electronic components on PCB?
随机推荐
[distillation] pointdistiller: structured knowledge distillationwards efficient and compact 3D detection
57. 插入区间
Tips on how to design soft and hard composite boards ~ 22021/11/22
C reads XML on the web
Basic use of ActiveMQ in Message Oriented Middleware
C WinForm panel custom picture and text
Buckle 78: subset
Take you through the normalization flow of GaN
Atlas conflict Remote Code Execution Vulnerability (cve-2022-26134 vulnerability analysis and protection
Requirements for Power PCB circuit board design 2021-11-09
[deep learning lightweight backbone] 2022 edgevits CVPR
27. 移除元素
VOCALOID笔记
【Unexpected token o in JSON at position 1出错原因及解决方法】
Summary of small problems in smartbugs installation
Analysis and utilization of Microsoft Office Word remote command execution vulnerability (cve-2022-30190)
opencv最小值滤波(不局限于图像)
Elk + filebeat log parsing, log warehousing optimization, logstash filter configuration attribute
【日常训练】207. 课程表
Pit encountered by pytorch: why can't l1loss decrease during model training?