websocket - websockets 是如何详细工作的?

标签 websocket socket.io spring-websocket java-websocket libwebsockets

有一个 fantastic answer其中详细介绍了 REST apis 的工作原理。

websockets 如何以类似的细节工作?

最佳答案

Websocket 创建并代表了服务器和客户端之间双向通信的标准。此通信 channel 创建一个 TCP 连接,该连接位于 HTTP 之外并在单独的服务器上运行。
为了开始这个过程,在服务器和客户端之间执行握手。

这是工作流程

1) 用户向服务器发出一个带有升级头的HTTP请求,表示客户端希望建立WebSocket连接。

2)如果服务器使用WebSocket协议(protocol),那么它会接受升级并发回响应。

3) 握手完成后,从现在开始使用WebSocket协议(protocol)。所有通信都将使用相同的底层 TCP 端口。新的返回状态代码 101 表示交换协议(protocol)。

作为 HTML5 的一部分,它应该适用于大多数现代浏览器。

关于websocket - websockets 是如何详细工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46314065/

相关文章:

php - Laravel Web-socket 和 Chrome `SameSite` 属性

android - 套接字 io + MQTT

node.js - 使用socket.io 广播的效率与向每个客户端发送消息的效率相同

java - jetty、websockets 和 UTF8 编码

websocket - 使用 rust-websocket 聊天

php - 使用 PHP 连接到 Ratchet 网络套接字服务器

node.js - Google 云应用引擎 1 小时延迟,没有明显的响应时间

http - WebSocket 服务器如何处理多个传入的连接请求?

java - 集群环境中带有外部消息代理(RabbitMQ)的 Spring 套接字 ConvertandSendToUser

spring-webflux - 刷新react-app/webflux时如何修复 'Status and headers already sent'?