Closed redsquare closed 9 years ago
I undertstand the issue better, its down to webstomp creating exclusive queues which do not get mirrored meaning any non websocket browser client must end up polling to the same node.
Yes, this is an interesting consequence of using exclusive queues. This depends on https://github.com/rabbitmq/rabbitmq-stomp/issues/24, then.
@essen now that https://github.com/rabbitmq/rabbitmq-stomp/issues/24 is fixed, we can look into propagating endpoint/queue attributes for Web STOMP clients, too:
durable
auto-delete
exclusive
via headers or similar. What do you think?
I think I need to read more about it before I can answer that. :-)
I'll get back to you.
From what I understand, we shouldn't have to do anything.
The Web STOMP plugin just receives STOMP data as part of Websocket frames or other. There's no filtering going on that I can tell, we call rabbit_stomp_processor directly. This means that if you set the STOMP headers they will be propagated to rabbitmq-stomp and rabbitmq-stomp will handle them as expected.
I can experiment to confirm. How can I know if a queue is either durable/auto-delete/exclusive, though?
@essen you can take a look at what flags (D, AD, E) it has in the management UI or list queues with rabbitmqctl
. I'll assume this is closed, feel free to give it a try and re-open if things don't work as intended in master.
Hi, I have a three node cluster of rabbitmq load balanced by nginx (tried haproxy also). When I use sock.js/stomp.js to connect on either ie9/android stock (basically and non ws client) then I cannot connect and hold an open connection. I believe this is due to the cowboy plugin/webserver doing things in memory so when the next request comes into a different node there is no knowledge of the address. This happens with the /stomp/xhr_send routes. Is there no way to ha this across the cluster or do we need to deploy 'sticky/ip_hash' sessions?