spring-stomp如何使用“:”处理标头

问题描述 投票:0回答:1

我将日期时间(例如: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个回答
0
投票

这是由于STOMP specification指出(强调我的意思:)>

C样式字符串文字转义符用于对在UTF-8编码的标头中找到的任何回车符,换行符或冒号

进行编码。解码帧头时,必须应用以下转换:
  • [\r(八位位组92和114)转换为回车(八位位组13)
  • [\n(八位位组92和110)转换为换行(八位位组10)
  • \c(八位字节92和99)转换为:(八位字节58)
  • [\\(八位字节92和92)转换为\(八位字节92)
© www.soinside.com 2019 - 2024. All rights reserved.