1

我正在使用 stompjs 连接到 websocket 端点。参数之一是connectHeaders标头,但它不在 http 请求标头中使用这些标头?它在哪里使用这些标头?

export const stompClient = new Client({
    brokerURL: "ws://localhost:8080/gs-guide-websocket",
    connectHeaders: {
        Ad: "asjfasfjldskfjsklfajsdklfasdf",
        login: "user",
        passcode: "password"
    },
    debug: function (str) {
        console.log(str);
    },
});
4

1 回答 1

3

这些标头用于 Stomp 框架,特别是CONNECT框架。Stomp 帧以 HTTP 帧为模型,但它们不是同义词。Stomp 标头不同于 HTTP 标头,因为 Stomp 不绑定到 HTTP。如框架的 Stomp 1.2 规范中所述:CONNECT

STOMP 1.2 客户端必须设置以下标头:

  • accept-version: 客户端支持的 STOMP 协议版本。有关详细信息,请参阅协议协商。
  • host:客户端希望连接的虚拟主机的名称。建议客户端将此设置为建立套接字的主机名,或他们选择的任何名称。如果此标头与已知的虚拟主机不匹配,支持虚拟主机的服务器可以选择默认虚拟主机或拒绝连接。

STOMP 1.2 客户端可以设置以下标头:

  • login:用于针对安全 STOMP 服务器进行身份验证的用户标识符。
  • passcode:用于针对安全 STOMP 服务器进行身份验证的密码。
  • heart-beat心跳设置。
于 2019-12-08T02:18:21.140 回答