【问题标题】:How spring-stomp handles headers with ":"spring-stomp 如何处理带有“:”的标题
【发布时间】:2020-07-01 13:38:11
【问题描述】:

我将日期时间(例如:2020-03-20 13:56:57)放入 Spring STOMP 标头中,如下所示:

map.put("messageTime","2020-03-20 13:56:57");
simpMessagingTemplate.convertAndSend("","",map)

STOMP客户端是这样的:

stomp.subscribe("",(res)=>{
   let messageTime = res.headers.messageTime;
})

客户端结果显示如下:

messageTime:2020-03-20 13\c56\c57

: 转换为 \c。为什么?

【问题讨论】:

  • 我的回答是否解决了您的评论?如果是这样,请将其标记为正确,以帮助将来有同样问题的其他用户。如果没有,请详细说明缺少什么。谢谢!

标签: stomp spring-messaging


【解决方案1】:

这是由于STOMP specification 声明(强调我的):

C 风格的字符串文字转义用于编码在 UTF-8 编码的标头中找到的任何回车、换行 或冒号。解码帧头时,必须应用以下转换:

  • \r(八位字节 92 和 114)转换为回车符(八位字节 13)
  • \n(八位字节 92 和 110)转换为换行符(八位字节 10)
  • \c(八位字节 92 和 99)转换为 :(八位字节 58)
  • \\(八位字节 92 和 92)转换为 \(八位字节 92)

【讨论】:

    猜你喜欢
    • 2018-06-16
    • 2019-04-14
    • 1970-01-01
    • 2021-09-28
    • 2018-06-23
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多