乐趣区

关于websocket:弄懂-Websocket-你得知道的这-3-点

1. WebSocket 原理

WebSocket 同 HTTP 一样也是应用层的协定,然而它是一种双向通信协定,是建设在 TCP 之上的。

WebSocket 是一种在单个 TCP 连贯上进行全双工通信的协定。WebSocket API 也被 W3C 定为规范。

WebSocket 使得客户端和服务器之间的数据交换变得更加简略,容许服务端被动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只须要实现一次握手,两者之间就间接能够创立持久性的连贯,并进行双向数据传输。

握手过程:

  • 浏览器、服务器建设 TCP 连贯,三次握手。这是通信的根底,传输管制层,若失败后续都不执行。
  • TCP 连贯胜利后,浏览器通过 HTTP 协定向服务器传送 WebSocket 反对的版本号等信息。(开始前的 HTTP 握手)
  • 服务器收到客户端的握手申请后,同样采纳 HTTP 协定回馈数据。
  • 当收到了连贯胜利的音讯后,通过 TCP 通道进行传输通信。

Websocket 默认应用申请协定为:ws://, 默认端口:80。对 TLS 加密申请协定为:wss://,端口:443。

2. WebSocket 与 HTTP 的关系

相同点:

  • 都是一样基于 TCP 的,都是可靠性传输协定。
  • 都是应用层协定。

不同点:

  • WebSocket 是双向通信协定,模仿 Socket 协定,能够双向发送或承受信息。
  • HTTP 是单向的。
  • WebSocket 是须要握手进行建设连贯的。

分割: WebSocket 在建设握手时,数据是通过 HTTP 传输的。然而建设之后,在真正传输时候是不须要 HTTP 协定的。

3. WebSocket 与 Socket 的关系

Socket 其实并不是一个协定,而是为了方便使用 TCP 或 UDP 而形象进去的一层,是位于应用层和传输管制层之间的一组接口。tcp 是牢靠的连贯,且连贯后才能够发送数据;udp 是不牢靠的连贯,不连贯就能够发送数。

Socket 是应用层与 TCP/IP 协定族通信的两头软件形象层,它是一组接口。在设计模式中,Socket 其实就是一个门面模式,它把简单的 TCP/IP 协定族暗藏在 Socket 接口前面,对用户来说,一组简略的接口就是全副,让 Socket 去组织数据,以合乎指定的协定。

当两台主机通信时,必须通过 Socket 连贯,Socket 则利用 TCP/IP 协定建设 TCP 连贯。TCP 连贯则更依附于底层的 IP 协定,IP 协定的连贯则依赖于链路层等更低层次。

WebSocket 则是一个典型的应用层协定,Socket 是传输管制层协定。

如果你在日常工作中须要进行 Websocket 协定测试,但又不晓得应用什么工具,那我举荐你用这一款开源的 API 管理工具——Postcat:

在线 Demo 链接:https://postcat.com/zh/?utm_s…

文档链接:https://docs.postcat.com/?utm…

如果你感觉这个开源我的项目还能够的话,无妨点个 star 反对下他们,如果你感觉还须要持续优化,无妨去提个 Issue.

Github:https://github.com/Postcatlab…

Gitee:https://gitee.com/eolink_admi…

退出移动版