我一直在尝试在 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/