Skip to content

Instantly share code, notes, and snippets.

@apeyroux
Created May 27, 2014 12:31
Show Gist options
  • Save apeyroux/1e5772468cd0b34d3715 to your computer and use it in GitHub Desktop.
Save apeyroux/1e5772468cd0b34d3715 to your computer and use it in GitHub Desktop.
socket.io and celery
// Server
var http = require('http');
var fs = require('fs');
var redis = require('redis').createClient(6379, "10.73.0.1");
// Chargement du fichier index.html affiché au client
var server = http.createServer(function(req, res) {
fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end(content);
});
});
// Chargement de socket.io
var io = require('socket.io').listen(server);
// Quand on client se connecte, on le note dans la console
io.sockets.on('connection', function (socket) {
console.log('Un client est connecté !');
});
io.sockets.on('connection', function (socket) {
//redis.psubscribe("celery-task-meta-*");
socket.emit('message', "Init de redis");
redis.on('error', function(channel, message) {
socket.emit('message', message);
});
redis.on('connect', function(channel, message) {
socket.emit('message', message);
});
redis.on('ready', function(channel, message) {
socket.emit('message', message);
});
redis.on('pmessage', function(pattern, channel, message) {
socket.emit('message', message);
});
redis.psubscribe('celery-task-meta-*');
});
io.sockets.on('connection', function (socket) {
socket.emit('message', 'Vous êtes bien connecté !');
});
server.listen(8080);
// Client
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Socket.io</title>
<script src="/socket.io/socket.io.js"></script>
</head>
<body>
<script>
var socket = io.connect('http://localhost:8080');
socket.on('message', function(message) {
console.log('srv message : ' + message);
});
</script>
<h1>cargo.io</h1>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8080');
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment