如何在Apache ActiveMQ Artemis中强制Stomp消息为文本而非二进制?
ActiveMQ Artemis Stomp WebSocket 强制文本消息配置方案
可以通过配置修改Artemis Stomp服务器的默认行为,让消息以纯文本形式发送,无需处理二进制数据,具体配置方式如下:
全局生效配置
在broker.xml的<configuration>节点内添加全局Stomp参数,所有Stomp acceptor都会遵循该规则:
<stomp-server> <send-as-text>true</send-as-text> </stomp-server>
特定Acceptor生效配置
如果只需针对某个Stomp WebSocket acceptor调整,在对应的<acceptor>节点的URL参数中加入stomp-send-as-text=true:
<acceptor name="stomp-ws-acceptor">tcp://0.0.0.0:61614?protocols=STOMP_WS;stomp-send-as-text=true</acceptor>
配置完成后重启Artemis broker,后续通过Stomp WebSocket订阅收到的文本消息会标记为isBinaryBody: false,并通过body属性传递内容。
注意:若发送端本身发送的是二进制消息,broker仍会以二进制形式转发;但对于文本消息,会强制以文本格式传递,满足仅使用文本消息的需求。
内容的提问来源于stack exchange,提问作者Alberto
相关产品推荐
相关产品推荐

