javascript - Websocket 握手操作

标签 javascript html tcp websocket handshake

为了在 javascript 中创建 websocket 连接,我们可以使用 websocket api:

const socket = new WebSocket('ws://localhost:8080');

然后浏览器将通过带有这些 header 的 http get 请求发起握手:

Upgrade: websocket
Connection: Upgrade 

和服务器响应:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

之后客户端和服务器将打开 websocket 连接。

所以我的问题是是否可以通过其他方法进行握手?是否可以通过像 xhr 或类似的 JavaScript 来处理握手?

最佳答案

WebSockets 握手仅使用 GET 定义,请参阅 the standard 。此外,由于 WebSocket 不适合 HTTP 的请求响应方案,但本质上是建立一个永久连接,服务器和客户端都可以彼此独立写入,因此无法使用 XHR 处理 WebSocket,因为 XHR 需要对单个请求进行单个响应请求。

关于javascript - Websocket 握手操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50200785/

相关文章:

javascript - AngularJS 自定义指令 ng-show/ng-hide

html - 选择嵌套最后一个元素的问题

php - Html5 中的下拉导航无法正常工作

iOS TCP/IP over USB 与 Linux 端

javascript - Elasticsearch:将文档与其中的数组进行匹配

javascript - dart 函数使用 MIME 类型将文本复制到剪贴板

javascript - Jquery - 从选择框进行数组操作

javascript - 鼠标移动时模糊透明的圆形背景效果

c - 在 Linux 内核模块中重新计算 TCP 校验和

java - 如何注意到客户端与服务器断开连接 - JAVA