欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 1.探索WebSocket:实时网络的心跳!

1.探索WebSocket:实时网络的心跳!

2024/11/29 16:48:37 来源:https://blog.csdn.net/Hi_alan/article/details/143397381  浏览:    关键词:1.探索WebSocket:实时网络的心跳!

序言

你可能听说过"WebSokcet"这个词,感觉它好像很高深,但其实它是一个超级酷的小工具,让我们在Web应用里实现实时通信。想象一下,你可以像聊天一样,在浏览器和服务器之间来回“畅聊“,没有延迟,没有刷新,没有重新请求的等待时间。今天,我们就来一探WebSocket的奥秘,看看它是怎么让互联网更有“生命力“的!

1. 什么是WebSocket

WebSokcet是HTML5引入的一种网络协议,最初由IEFT(互联网工程任务组)在2011年发布,专为双向通信设计。简单来说,它让浏览器和服务器之间可以像打电话一样,保持着一个实时的“通话线路”,随时互相传递信息

在普通的HTTP请求里,浏览器每次想要一些数据,都需要单独“打电话”给服务器,并等待回应,收到后电话就挂断了——这种方式叫短连接。而WebSocket却能让浏览器和服务器之间维持一条长连接,使他们随时可以向对方传递消息,就像微信、微博的实时消息推送那样!更妙的是,WebSokcet建立连接后,通信速度更快且更节省资源。

2. WebSocket的几个关键特性

  1. 双向通信: WebSocket可以让客户端(浏览器)和服务器彼此都可以主动发消息,而不是等待请求。
  2. 长连接: 连接一旦建立,不需要每次通信都重新发起连接请求
  3. 低延迟: 在频繁通信的场景中,比HTTP短连接更省时省力。
  4. 轻量级: WebSocket协议投很轻巧,减少了数据传输的开销。

3. WebSocket的实际应用场景

WebSocket广泛应用在那些需要实时数据更新的应用里:

  1. 在线聊天: 比如微信、QQ等即时通讯应用,它们需要实现消息的实时传输,才能让你和朋友“即时聊天”
  2. 实时推送:各类推送通知,比如微博、新闻网站的实时热点推送、双向的通信能力
  3. 在线游戏: 多人在线游戏里的实时对战、积分更新都需要低延迟、双向的通信能力。
  4. 股票/加密货币行情: 金融市场瞬息万变,很多股票、比特币行情数据都依赖WebSocket,确保用户看到的是“秒级”的更新。
  5. 实时协作工具: 文档、表格等协作工具,需要实时共享数据,大家编辑时能立刻看到彼此的改动。

4. 如何使用WebSocket? 一个简单的示例

WebSocket的使用很简单,浏览器端只需要几行代码,就能和服务建立通信。以下是一个使用JavaScript和WebSocket的基本示例。

//1. 创建WebSocket 连接
const socket = new WebSocket("wss://example.com/socket")//2.连接成功后触发
socket.onopen = function(event){console.log('Connected to WebSocket');socket.send('Hello,Server!');// 向服务器发送信息
}//3.监听信息
socket.onmessage = function(event){console.log('Message from server:',event.data)
}//4.监听关闭事件
socket.onclose = function(event){console.log('WebSocket connection closed:',event)
}//5.错误处理
socket.onerror = function(error){console.error('WebSocket error:',error)
}

在这个例子中,我们首先创建了一个WebSocket连接,并设置了几个监听器:
● onopen: 连接时触发
● onmessage: 当服务器发送消息时触发
● onclose: 当连接关闭时触发。
● onerror: 如果出现错误时触发

5. 浏览器观察数据交互

以bilibili的弹幕为例,打开控制台,或者F12然后查看网络(NetWork),选择过滤WS协议的请求,我们随机选择一个请求,进行查看。其中101 代表的是成功的消息。
在这里插入图片描述
我们查看下Message消息,我们可以看到数据在浏览器和服务端之间进行交互:

我们可以看到他们数据传递格式采用的是二进制,我们也可以使用JSON格式进行传递,这样数据的可读性就更高。

在这里插入图片描述
其中图中绿色箭头向上的数据是客户端发送给服务端的数据,橙色箭头向下的数据是服务端推送给客户端的数据。

6. WebSocket的工作流程

  1. 建立连接: 客户端向服务器发送WebSocket连接请求,这类似于一次普通的HTTP请求
  2. 握手成功: 一旦握手成功,客户端和服务器之间便建立了WebSocket长连接。
  3. 数据通信: 连接保持着,客户端和服务器可随时互发信息,不需要重新请求。
  4. 关闭连接: 通信完成户,任何一方都可以主动关闭连接。

7. WebSocket 和 HTTP的区别

WebSocket 并非替代HTTP,而是一种补充。HTTP是无状态、单向的协议,适用于一般网页的请求-响应模式。
而WebSocket则是有状态的,适用于需要频繁双向通信的场景。WebSocket通过建立长连接,可以极大减少宽带开销和延迟,但一般只用于少数需要实时互动的应用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com