【问题标题】:Understanding connectHeaders when using stomp client使用 stomp 客户端时了解 connectHeaders
【发布时间】:2019-12-07 22:00:41
【问题描述】:

我正在使用 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);
    },
});

【问题讨论】:

  • 尝试将connectHeaders重命名为headers
  • connectHeaders 看起来是正确的名称,如 stompjs docs 中所述。

标签: stomp stompjs


【解决方案1】:

这些标头用于 Stomp 框架,特别是 CONNECT 框架。 Stomp 帧模仿 HTTP 帧,但它们不是同义词。 Stomp 标头与 HTTP 标头不同,因为 Stomp 与 HTTP 无关。正如the Stomp 1.2 specification 中提到的CONNECT 框架:

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

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

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

  • login :用于针对安全 STOMP 服务器进行身份验证的用户标识符。
  • passcode :用于针对安全 STOMP 服务器进行身份验证的密码。
  • heart-beatHeart-beating 设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2012-07-15
    • 2018-03-27
    • 2011-03-20
    • 2014-04-12
    • 1970-01-01
    • 2018-06-03
    相关资源
    最近更新 更多