javascript - 什么是 WebSocket 子协议?
问题描述
我一直在尝试在 nodejs 中从头开始实现 WebSocket 协议,这样做我有一个问题,自那以后就无人问津了。关于 websocket 的子协议到底是什么?WebSocket 构造函数的第二个参数是您指定“子协议”的位置 -
let socket = new WebSocket("ws://localhost:3000",["http",...]);
谁能给我一个明确的遮篷他们有什么目的?
解决方案
Websocket 只是定义了一种交换任意消息的机制。这些消息的含义、客户端在任何特定时间点可以期待什么样的消息或允许他们发送什么消息完全取决于实现的应用程序。因此,您需要在服务器和客户端之间就这些事情达成一致。你可能会说……你需要一个协议规范。subprotocol 参数只是让客户端正式交换此信息。你可以为任何你想要的协议起任何名字。服务器可以简单地检查客户端在握手期间是否遵守该协议。您还可以使用它向服务器请求不同类型的协议,或将其用于版本控制(例如,当您引入my-protocol-v2
,但仍然需要支持客户才理解my-protocol-v1
)。
推荐阅读
- flutter - 有没有办法让 TextSpan.text 在颤动中可选?
- html - 使用 -webkit-... 创建自定义文本颜色在 Safari 中创建边框
- vba - 如何使用 VBA (2013) 从 Enterprise projectserver 打开 MS Project 文件
- amazon-web-services - AWS QuickSight:计算列中的值
- python - 如何将 '2021-08-24T11:00:19Z' 转换为 datetime 并在 django 中找到它与当前时间之间的天数
- docker - 如何在 Dockerfile 中使用 ARG 和 ENV 的组合来防止不支持的修饰符被替换?
- decimal - Magento 2 / 价格和小计 4 位小数 但增值税和总计 2 位小数
- python - 如何在异常处理期间停止使用我想在 python 中重命名的特定文件?
- node.js - 变量在函数外未定义
- python - 使用 for 循环在列表中查找元素的解决方案