Skip to content

Instantly share code, notes, and snippets.

@adunkman
Created January 14, 2012 15:28
Show Gist options
  • Star 21 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save adunkman/1611789 to your computer and use it in GitHub Desktop.
Save adunkman/1611789 to your computer and use it in GitHub Desktop.
Relay messages from RabbitMQ to a browser using Socket.io
<!DOCTYPE html>
<html>
<head>
<script src="/socket.io/socket.io.js"></script>
<script>
(function () {
var onMessage = function (data) {
// Do something with the message data
};
var connectToServer = function () {
var socket = io.connect('http://localhost:8080');
socket.on('message-name', onMessage);
};
connectToServer();
})();
</script>
</head>
<body>
</body>
</html>
var amqp = require('amqp'),
express = require('express'),
app = express.createServer(),
io = require('socket.io').listen(app),
rabbitMq = amqp.createConnection({ host: 'rabbitmq-host.com' });
app.configure(function () {
app.use(express.static(__dirname + '/public'));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
rabbitMq.on('ready', function () {
io.sockets.on('connection', function (socket) {
var queue = rabbitMq.queue('my-queue');
queue.bind('#'); // all messages
queue.subscribe(function (message) {
socket.emit('message-name', message);
});
});
});
app.listen(8080);
@hlmn
Copy link

hlmn commented Mar 21, 2018

thanks

@memon07
Copy link

memon07 commented Jun 22, 2018

great! thanks

@jasperan
Copy link

Code is outdated and doesn't work anymore as of Feb. 15th 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment