【发布时间】:2015-07-28 22:29:27
【问题描述】:
我们的 javascript websocket 客户端向所有 STOMP 消息添加“自定义”标头。
我的项目使用 spring-websocket @Controller 处理 websocket 端点。
@MessageMapping(value = "/mymessages")
public void save(@Payload ToBeSaved payload, @Headers MessageHeaders headers) {
service.save(toMsg(payload, headers));
}
protected <P> Message<P> toMsg(P payload, MessageHeaders headers) {
return MessageBuilder.createMessage(payload, headers);
}
控制器修改有效负载,然后将新的有效负载和原始 websocket 标头(包括自定义标头)传递给 spring-integration @MessagingGateway。
底层IntegrationFlow 尝试通过使用 SPLExpression headers['custom'] 访问邮件标头来访问“自定义”标头。
不幸的是,headers['custom'] 始终为 null,因为 custom 实际上包含在 nativeHeaders 中。
我还没有找到让IntegrationFlow 调查nativeHeaders 的方法。
spring-websocket 中有没有办法将所有本机标头复制为普通标头?
提前致谢
【问题讨论】:
标签: spring-integration spring-websocket