javascript - 什么是 WebSocket 子协议(protocol)?

标签 javascript node.js websocket

我一直在尝试在 nodejs 中从头开始实现 WebSocket 协议(protocol),这样做我有一个问题,那就是自那以后就无人问津了。关于 websockets 的子协议(protocol)到底是什么? WebSocket 构造函数的第二个参数是您指定“子协议(protocol)”的位置 -

let socket = new WebSocket("ws://localhost:3000",["http",...]);
谁能给我一个明确的遮篷他们有什么目的?

最佳答案

Websocket 只是定义了一种交换任意消息的机制。这些消息意味着什么,客户端在任何特定时间点可以期待什么样的消息,或者允许他们发送什么样的消息,完全取决于实现的应用程序。因此,您需要在服务器和客户端之间就这些事情达成一致。你可能会说……你需要一个协议(protocol)规范。 subprotocol 参数只是让客户端正式交换此信息。你可以为任何你想要的协议(protocol)起任何名字。服务器可以简单地检查客户端在握手期间是否遵守该协议(protocol)。您也可以使用它向服务器请求不同类型的协议(protocol),或将其用于版本控制(例如,当您引入 my-protocol-v2 时,但仍需要支持客户端仅了解 my-protocol-v1 )。

关于javascript - 什么是 WebSocket 子协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67436517/

相关文章:

c++ - 如何从 C++ 客户端正确使用 QWebSocket::sendBinaryMessage() 方法?

javascript - 如何向此递归主题标签生成器添加特定要求?

javascript - 从 Angular 资源获取二进制文件

javascript - $(document).ready 等效于异步加载的内容

javascript - Webpack 找不到模块 mini-css-extract-plugin

angularjs - 错误 : getaddrinfo ENOTFOUND registry. npmjs.org registry.npmjs.org:443

node.js - 从谷歌云存储中读取图像并使用谷歌云功能发送

arrays - 如何处理 nodejs 中的数组缓冲区分配失败?

node.js - 在 socket.io-client Reactjs 中多次发出相同的事件

ember.js - 隐藏模板中已删除的记录