qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fraser Adams <fraser.ad...@blueyonder.co.uk>
Subject Re: heads up: javascript has landed
Date Fri, 12 Dec 2014 17:02:29 GMT
Yup pretty much exactly as Rafael says.

If you are using the Qpid Java Broker you need to tweak the config.json 
in qpid-work, basically you need to add something like the following to 
the "ports" array (if you leave out the "id" I think a proper one should 
get created):

{
     "id" : "7f44acca-5de9-4cab-a167-8a1ef7e4119f",
     "authenticationProvider" : "passwordFile",
     "name" : "AMQP-WS",
     "port" : "5673",
     "transports" : [ "WS" ]
   }

Which will activate the WebSocket transport on port 5673

If you are using the C++ broker there is a little Node.js WebSocket->TCP 
Socket proxy provided in:

qpid-proton/examples/messenger/javascript

called simply proxy.js

If you fire that up it will accept a WebSocket connection and connect to 
a TCP socket

./proxy -h

will show the options.

In that directory there's a little send.html demo but it should be 
pretty easy to do receive too. If you look at recv.js that's set up as a 
"server" ( var address = "amqp://~0.0.0.0";) but if you were to do say:

./recv.js amqp://0.0.0.0/queue

that would receive messages off a broker - assuming that you had a queue 
called queue and you had enabled the Java Broker WebSocket transport or 
had the proxy running :-)


Also (and this *still* bites me :-[ ) be careful of the ports. You 
normally use 5672 for AMQP, but that's the TCP transport, the proxy.js 
defaults to listen on 5673 and sends out on TCP 5672, so you'd generally 
need to do:

./recv.js amqp://0.0.0.0:5673/queue


so basically I've just done:
1. open a console and do qpidd --auth no
2. do qpid-config add queue queue
3. open another console and do (in 
qpid-proton/examples/messenger/javascript) ./proxy.js
4. open another console and do (in 
qpid-proton/examples/messenger/javascript) ./recv.js 
amqp://0.0.0.0:5673/queue
5. open another console and do (in 
qpid-proton/examples/messenger/javascript) ./send.js -a 
amqp://0.0.0.0:5673/queue

It should be fairly easy to hack around with send.html to pull in the 
behaviour of recv.js


Be aware that the proxy.js doesn't have much in the way of error 
handling yet if you use the proxy and qpidd and qpidd dies your client 
won't see it. It's on my TODO list, but I've been tied up an a whole 
bunch of family Xmas related things lately, so my weekends of coding 
have been a bit disrupted :-D

HTH,
Frase


On 12/12/14 15:11, Rafael Schloming wrote:
> Yes, it is possible. The only caveat is that depending on whether your
> broker supports websockets or not you may need to put a websockets to tcp
> proxy in front of your broker.
>
> --Rafael
>
> On Fri, Dec 12, 2014 at 9:57 AM, Jan Rinze <janrinze@gmail.com> wrote:
>> I have read this thread with great interest.
>> Will it be possible to use this in a web-page and show incoming messages
>> from a queue as well as send messages to a queue? We use JSON based web
>> services to relay between javascript and qpid but sending and receiving
>> directly to a broker would make life much easier.
>>
>> Best regards,
>> Jan Rinze.
>>
>>
>>
>> --
>> View this message in context:
>> http://qpid.2158936.n2.nabble.com/Re-heads-up-javascript-has-landed-tp7616982p7617448.html
>> Sent from the Apache Qpid users mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
>> For additional commands, e-mail: users-help@qpid.apache.org
>>
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Mime
View raw message