使用stomp(ruby)到ActiveMQ

时间:2018-05-21 11:34:24

标签: ruby activemq stomp

当我向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)。由此产生的价值   然而,在电线上熄灭仍然是一个字符串。

1 个答案:

答案 0 :(得分:2)

在线路上发送的任何内容都需要作为UTF-8编码的字符串,因为这是STOMP允许的所有内容(它是基于文本的协议)。代理将属性中的值视为字符串,如果将OpenWire或AMQP转换为这些协议的正确编码字符串,则会转换它们。在客户端上,您可以使用任何语言功能将字符串转换为数字形式,并且需要处理可能由于错误解码而导致的错误。