分享即时通讯开发之WebSocket:概念、原理、易错常识、动手实践

本文将从基本概念、技术原理、常见易错常识、动手实践等多个方面入手,万字长文,带你一起全方位探索 WebSocket 技术。

 

阅读完本文,你将了解以下内容:

1)了解 WebSocket 的诞生背景、WebSocket 是什么及它的优点;

2)了解 WebSocket 含有哪些 API 及如何使用 WebSocket API 发送普通文本和二进制数据;

3)了解 WebSocket 的握手协议和数据帧格式、掩码算法等相关知识;

4)了解 WebSocket 与http、长轮询、socket等的关系,理清常识性的理解错误;

5)了解如何实现一个支持发送普通文本的 WebSocket 服务器。

WebSocket 诞生背景

早期,很多网站为了实现推送技术,所用的技术都是轮询(也叫短轮询)。轮询是指由浏览器每隔一段时间向服务器发出 HTTP 请求,然后服务器返回最新的数据给客户端。

这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而 HTTP 请求与响应可能会包含较长的头部,其中真正有效的数据可能只是很小的一部分,所以这样会消耗很多带宽资源。

比较新的轮询技术是 Comet。这种技术虽然可以实现双向通信,但仍然需要反复发出请求。而且在 Comet 中普遍采用的 HTTP 长连接也会消耗服务器资源。

在这种情况下,HTML5 定义了 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

Websocket 使用 ws 或 wss 的统一资源标志符(URI),其中 wss 表示使用了 TLS 的 Websocket。

如:

ws://echo.websocket.org

wss://echo.websocket.org

WebSocket 与 HTTP 和 HTTPS 使用相同的 TCP 端口,可以绕过大多数防火墙的限制。

默认情况下:

    1)WebSocket 协议使用 80 端口;

    2)若运行在 TLS 之上时,默认使用 443 端口。

WebSocket 是一种网络传输协议&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSocket 即时通讯原理是基于 WebSocket 协议的。WebSocket 是一个全双工的协议,允许服务器主动向客户端推送信息,而不需要客户端发起请求。它通过在客户端和服务器之间建立持久的连接来实现实时通讯。 在前端开发中,要使用 WebSocket 实现即时通讯,首先需要掌握 WebSocket API。通过创建一个 WebSocket 对象,可以连接到指定的服务器地址和端口。例如,可以使用以下代码创建 WebSocket 对象: const myWebSocket = new WebSocket(url [, protocols]); 其中,url 是服务器的地址,protocols 是可选的协议数组。创建成功后,WebSocket 对象会自动尝试与服务器建立连接。 WebSocket 协议与传统的 HTTP 协议不同,它不同于 HTTP 的点对点请求-响应模式,而是通过一个初始的握手过程来建立连接,之后双方可以相互发送消息。这种全双工通信的特性使得 WebSocket 成为实时通讯的理想选择。 然而,使用 WebSocket 协议的缺点是在服务器端的配置比较复杂。需要在服务器端实现对 WebSocket 连接的处理和管理,以及消息的处理和推送。 总结起来,WebSocket 即时通讯原理是基于 WebSocket 协议,在前端通过 WebSocket API 创建 WebSocket 对象,并与服务器建立持久连接,实现双向的实时通讯。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [分享即时通讯开发WebSocket概念原理易错常识动手实践](https://blog.csdn.net/wecloud1314/article/details/126134686)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [即时通讯WebSocket详解及使用](https://blog.csdn.net/qq_52337177/article/details/127243229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值