Lua 中具有自定义属性的 STOMP
STOMP with custom properties in Lua
我试图在发布主题消息时将两个自定义属性放在 STOMP 消息头中,以便订阅者可以过滤消息。这是我发送到 ActiveMQ 5.14 以连接和发布的两个帧:
CONNECT
login: myUserName
passcode: myPassword
注:实际字符串为CONNECT\nlogin: myUserName\npasscode: myPassword
.
和
SEND
destination:/topic/myTopic
myTopicMessage
注:实际字符串为SEND\ndestination:/topic/myTopic\n\nmyTopicMessage
.
我应该如何将以下两对属性添加到上述字符串中?
package_code = ''
whse_code = 'MyWarehouse'
顺便说一句,我正在使用 lua 来实现它。
您可以使用 destination
使用的相同语法将属性添加到 SEND
框架,例如:
SEND
destination:/topic/myTopic
package_code:MyPackageCode
whse_code:MyWarehouse
myTopicMessage^@
如果 package_code
(或任何其他 header)为空,请不要设置它。
其他一些细节值得注意:
- 请确保在消息的 body 之后使用 "STOMP Frames" section of the STOMP 1.2 spec 中注明的 NULL 八位字节。上面的示例使用
^@
(即 ASCII 中的 control-@)来表示 NULL 八位字节。
SEND
帧 应该 包含 content-length header and a content-type header if a body is present as noted in the "SEND" section of the STOMP 1.2 spec.
疑难解答:
您可以通过以下步骤启用 STOMP 协议跟踪:
- ActiveMQ 5.x:在STOMP
transportConnector
上设置trace=true
,例如:<transportConnector name="stomp" uri="stomp://localhost:61613?trace=true"/>
。然后在 conf/log4j.properties
中将 org.apache.activemq.transport.stomp.StompIO
记录器设置为 TRACE
- ActiveMQ Artemis:在
etc/logging.properties
. 中将记录器org.apache.activemq.artemis.core.protocol.stomp.StompConnection
设置为DEBUG
我试图在发布主题消息时将两个自定义属性放在 STOMP 消息头中,以便订阅者可以过滤消息。这是我发送到 ActiveMQ 5.14 以连接和发布的两个帧:
CONNECT
login: myUserName
passcode: myPassword
注:实际字符串为CONNECT\nlogin: myUserName\npasscode: myPassword
.
和
SEND
destination:/topic/myTopic
myTopicMessage
注:实际字符串为SEND\ndestination:/topic/myTopic\n\nmyTopicMessage
.
我应该如何将以下两对属性添加到上述字符串中?
package_code = ''
whse_code = 'MyWarehouse'
顺便说一句,我正在使用 lua 来实现它。
您可以使用 destination
使用的相同语法将属性添加到 SEND
框架,例如:
SEND
destination:/topic/myTopic
package_code:MyPackageCode
whse_code:MyWarehouse
myTopicMessage^@
如果 package_code
(或任何其他 header)为空,请不要设置它。
其他一些细节值得注意:
- 请确保在消息的 body 之后使用 "STOMP Frames" section of the STOMP 1.2 spec 中注明的 NULL 八位字节。上面的示例使用
^@
(即 ASCII 中的 control-@)来表示 NULL 八位字节。 SEND
帧 应该 包含 content-length header and a content-type header if a body is present as noted in the "SEND" section of the STOMP 1.2 spec.
疑难解答:
您可以通过以下步骤启用 STOMP 协议跟踪:
- ActiveMQ 5.x:在STOMP
transportConnector
上设置trace=true
,例如:<transportConnector name="stomp" uri="stomp://localhost:61613?trace=true"/>
。然后在conf/log4j.properties
中将 - ActiveMQ Artemis:在
etc/logging.properties
. 中将记录器
org.apache.activemq.transport.stomp.StompIO
记录器设置为 TRACE
org.apache.activemq.artemis.core.protocol.stomp.StompConnection
设置为DEBUG