Here is a small chat program that can be used for building a rich chat application, or if you just want a very simple chat program for your friends. It contains sending and receiving STOMP messages from an Apache ActiveMQ topic.
Prerequisites:
* Apace ActiveMQ server which can be found here: https://activemq.apache.org/components/classic/download/ Usually no configuration needed. Just start the server (./activemq start) and everything should work ok
* Stomp.js. A helper script for handling the WebSocket communication between ActiveMQ and your javascript application. This script can be found here, courtesy of Jeff Mesnil and Mark Broadbent: https://github.com/jmesnil/stomp-websocket/tree/master/lib
HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>A simple ActiveMQ chat application</title> <script src="stomp.js"></script> <script src="index.js"></script> </head> <body> <textarea id="chat" rows="10" cols="35"></textarea> <br /> <input id="message" size="40" type="text"> <br /> <button id="send" type="button" onclick="send()">Send</button> </body> </html>
Javascript:
// Setup websocket connection const client = Stomp.client("ws://localhost:61614/stomp", "v11.stomp"); // Setup header options const headers = {id: 'JUST.FCX', ack: 'client'}; // Connect to ActiveMQ (via websocket) client.connect("admin", "admin", function () { // Setup subscription of topic (/topic/chat) client.subscribe("/topic/chat", function (message) { const msg = message.body; // Add message to textarea document.getElementById("chat").value += msg + "\n"; // Acknowledge the message message.ack(); }, headers); }); function send() { const message = document.getElementById("message"); // Send message to topic (/topic/chat) client.send("/topic/chat", {}, message.value); // Reset input field message.value = ""; }
Tested on OSX 10.15.7 and Apache ActiveMQ v5.16.3