As a followup: We were looking over the release notes for AMQ 5.4
today, and a co-worker noticed https://issues.apache.org/activemq/browse/AMQ-2833
. This allows Stomp clients to indicate text vs byte messages via a
new custom Stomp header. This is perfect for our situation, and we're
looking forward to a 5.4 upgrade in the near future.
alex
On Jul 12, 2010, at 12:48 AM, Dejan Bosanac wrote:
Hi Alex,
I think it's a bigger problem to pass and handle byte[] content in
JavaScript. All patches are welcomed, of course :)
Cheers
--
Dejan Bosanac - http://twitter.com/dejanb
Open Source Integration - http://fusesource.com/
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net
On Fri, Jul 9, 2010 at 11:55 PM, Alex Dean <ad...@meteostar.com>
wrote:
On Jul 9, 2010, at 3:44 PM, Alex Dean wrote:
On Jul 9, 2010, at 1:50 PM, Alex Dean wrote:
I have a Ruby script which publishes a message to an ActiveMQ
topic via
Stomp. I'm attempting to send these messages to the topic used
by the demo
chat.html included in ActiveMQ, so I'm using the XML message
format expected
by that page. chat.html is this one :
http://fisheye6.atlassian.com/browse/activemq/branches/activemq-5.3/activemq-web-demo/src/main/webapp/chat.html?r=HEAD
My problem appears to be the same one described here :
http://juretta.com/log/2009/05/24/activemq-jms-stomp/
Stomp messages which include a content-length header are converted
to
BytesMessages by ActiveMQ. Messages without a content-length
header are
converted to TextMessages. TextMessages are delivered to
JavaScript OK via
AJAX, but BytesMessages are not.
If I hack the Ruby stomp code to not send a content-length header,
my
Ruby-published messages start appearing in chat.html. Is there a
better way
to solve this problem?
For a little more background, http://activemq.apache.org/stomp.html
says
that Stomp messages lacking a content-length header are converted
to JMS
TextMessage instances. Messages containing a content-length header
are
converted to BytesMessage instances. MessageListenerServlet.java
makes no
attempt to send a BytesMessage to an ajax client, hence the empty
message
when content-length is present.
See writeMessageResponse in this class:
http://fisheye6.atlassian.com/browse/activemq/branches/activemq-5.3/activemq-web/src/main/java/org/apache/activemq/web/MessageListenerServlet.java?r=HEAD
I'm trying to determine if it's feasible to try to handle
BytesMessage
instances in MessageListenerServlet. Perhaps via
BytesMessage.readUTF8()?
I'm not very familiar with ActiveMQ or JMS, so I'm not sure what the
implications of this might be.
thanks,
alex