当我向activemq发送消息时,我必须将名为SEQUENCE
的自定义消息属性设置为整数。正如activemq网站所解释的那样,STOMP协议只处理字符串。所以根据我的理解,使用STOMP无法做到这一点。有没有其他使用Ruby的方法我可以设置一个标题来获得一个整数值?
来自http://activemq.apache.org/cms/stomp-support.html:
Stomp CMS中的消息属性由于Stomp是严格基于文本的,因此 不支持指定消息属性类型的方法 (在stomp lingo中称为“标题”)。这意味着发送的属性为 一个整数可以被Stomp CMS客户端读取为以下任何一个:string, 整数,短,长等。
例如,当Java客户端向代理发送带有消息的消息时 整数属性(“myval”= 1),代理调整消息 openwire to stomp并在此过程中将属性“myval”转换为 字符串“1”并将消息发送给客户端。客户端 接收字符串,但允许用户以任何方式读取该值 这将成功地与std :: istringstream>>操作
将值写入传出消息也是如此。你可以打电话 任何方法(例如setIntProperty)。由此产生的价值 然而,在电线上熄灭仍然是一个字符串。
答案 0 :(得分:2)
在线路上发送的任何内容都需要作为UTF-8编码的字符串,因为这是STOMP允许的所有内容(它是基于文本的协议)。代理将属性中的值视为字符串,如果将OpenWire或AMQP转换为这些协议的正确编码字符串,则会转换它们。在客户端上,您可以使用任何语言功能将字符串转换为数字形式,并且需要处理可能由于错误解码而导致的错误。