RabbitMQ Heroku add-on MQTT and STOMP support - heroku

I've noticed that Heroku has support for RabbitMQ. Is the add-on version supporting MQTT plugin and STOMP plugin?
I'll look forward for your answers.
Thank you.
Regards,
Florin

CloudAMQP has STOMP enabled out of the box, but for MQTT we recommend CloudMQTT instead (which is currently in public beta on Heroku). RabbitMQ's MQTT adapter miss a couple of MQTT features, like QoS2 and retained messages.

Related

Why Apache Kafka does not provide a WebSocket connector?

I've seen brokers like RabbitMQ or Apache Pulsar provide a Websocket API to connect directly your browser to the broker.
AFAIK, I've not seen the same for Apache Kafka. You have to implement yourself an intermediary Websocket server.
Why Confluent, which owns Apache Kafka development, does not provide an out-of-the-box websocket API like Rabbitmq or Pulsar ?
Confluent does not own Apache Kafka development. Apache Kafka is a project owned by the Apache Software Foundation (ASF).
There are several examples of how to use WebSockets with Apache Kafka:
https://www.confluent.io/blog/data-stream-processing-with-kafka-streams-bitrock-and-confluent/
https://dev.to/victorgil/kafka-websockets-angular-event-driven-microservices-all-the-way-to-the-frontend-12aa
https://medium.com/swlh/angular-spring-boot-kafka-how-to-stream-realtime-data-the-reactive-way-510a0f1e5881
Your question seems somewhat a rhetorical one, but if you actually would like to see Websockets as part of Apache Kafka then the first step would be to raise a Kafka Improvement Proposal (KIP) for discussion in the community. There is a dev mailing list where you can get further guidance on the process on contributing code.
There is already an open source connecting Kafka with Websocket. https://github.com/b/kafka-websocket
If you have requirements connecting to Kafka from a browser, I suggest to consider to browserfiy this http://github.com/confluentinc/kafka-rest-node
There is a kafka connector to Ably hosted on the Confluent Hub. Ably is essentially a serverless WebSocket option (with pub/sub and message queues). You will also find a kafka rule on Ably's website.

MobileFirst 8 JMS Adapter

I want to upgrade the version of MobileFirst from WL v6.2 to MFP v8. The actual implementation uses a JMS Adapter for reading messages from a IBM MQ Queue to send push notification. MFP v8 no longer offers this kind of adapter and I would like to know what is the best way to read message from a Queue with the newest version.
Thanks,
Stefano
Because JMS support is currently not supported, your best bet IMO would be to create your own JMS client in a Java adapter and handle it on your own there...
http://docs.oracle.com/javaee/5/tutorial/doc/bncfa.html

java webscoket client for Rabbit mq Stomp

I am looking for creating a websocket client for using rabbit mq stomp over websocker using java.
I using jetty client and i am getting org.eclipse.jetty.websocket.api.UpgradeException: Didn't switch protocols
Looks like the issue is with the Rabbit MQ version. After I've upgraded from Ubuntu default one to the newest Rabbit MQ version from https://www.rabbitmq.com/install-debian.html it worked for me.
Look at this example: stomp-websockets-java-client
Please read first:
http://jmesnil.net/stomp-websocket/doc/
http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/
not perfect, it's far from the worst way do messaging in the browser: exposing STOMP through Websockets.

Is there a JMS API/Client that works with all AMQP brokers?

The JMS is the vendor neutral API to messaging in the Java space. AMQP's mission is "to become the standard protocol for interoperability between all messaging middleware". I'm looking for a JMS client implementation that is interoperable between AMQP vendors. Specifically, it would be nice if it could talk to either RabbitMQ or Qpid.
The Qpid JMS client (which is, for the avoidance of effort, the same code as the OpenAMQ JMS client) encodes JMS in AMQP 0-9-1. I cannot speak for the quality of the client, but that should work for both Qpid Java edition and RabbitMQ.
It won't be an entirely lossless encoding, however -- there are some bits of API in JMS that don't carry across to AMQP. Qpid may have shims in place for those; RabbitMQ, by and large, doesn't. I am thinking specifically of 'nolocal' and selectors. There are probably others.
(Actually it /kind of/ does selectors using AMQP header exchanges, but the results may not be what you expect from JMS)
There is an effort to create a JMS client that uses AMQP 1.0. But there are no Qpid nor RabbitMQ releases that support AMQP 1.0, which is after all really an entirely different protocol to 0-9-1 and other prior versions.
I have used Apache Qpid client library (qpid-client-0.32-bin.tar.gz) with RabbitMQ (AMQP 0-9-1) recently and It worked very well.
If you want to connect to AMQP 1.0 Broker you should use this Qpid lib (apache-qpid-jms-0.1.0-bin.tar.gz)
Both libs can be downloaded from here:
http://qpid.apache.org/download.html
Qpid itself has a JMS client. I've never used it, but it is listed here under AMQP Client APIs
http://qpid.apache.org/

How will Heroku's AMQP work?

I saw that they soon will have an addon for AMQP.
I'm about to learn how to use AMQP with RabbitMQ. I suppose that that addon doesn't deal with RabbitMQ.
Isn't AMQP just a protocol. Are they using any AMQP broker like RabbitMQ or ActiveMQ?
Heroku founder has written a Ruby library named Minion https://github.com/orionz/minion that mentions RabbitMQ so I suspect that will be the one.
As long as they are using AMQP .8 and .9 then they will have to supply a broker. Only AMQP 1.0 can be used brokerless.

Resources