Skip to content

Instantly share code, notes, and snippets.

@atinux
Last active December 15, 2015 19:19
Show Gist options
  • Save atinux/5310929 to your computer and use it in GitHub Desktop.
Save atinux/5310929 to your computer and use it in GitHub Desktop.
Envoyer des sockets depuis la console node.js
var http = require('http');
var fs = require('fs');
var io = require('socket.io');
// La page HTML
var html = '<meta charset="UTF-8">'
+ '<script type="text/javascript" src="/socket.io/socket.io.js"></script>'
+ '<script type="text/javascript">'
+ 'var socket = io.connect();'
+ 'socket.on("serverConsole", function (message) {'
+ ' console.log("Vous avez écrit dans la console :", message);'
+ '});'
+ '</script>'
+ '';
// Création du serveur
var app = http.createServer(function (req, res) {
// On renvoie la page
res.writeHead(200, {'Content-Type' : 'text/html'});
res.end(html);
});
// Notre application écoute sur le port 8080
app.listen(8080);
console.log('Server est en marche sur http://localhost:8080/');
// On lance socket.io
io = io.listen(app);
// On désactive les logs info et debug de socket.io pour ne pas polluer la console
// (https://github.com/LearnBoost/socket.io/wiki/Configuring-Socket.IO)
io.set('log level', 1);
// On va stocker tous les clients connectés
var clients = [];
// Quand un client se connecte...
io.sockets.on('connection', function (socket) {
// On l'ajoute au tableau
clients.push(socket);
});
// Il faudra gérer le cas où il se deconnecte pour l'enlever du tableau
// Lecture de la console
var stdin = process.openStdin();
// À chaque fois qu'on a cliqué sur la touche Entrée...
stdin.addListener("data", function (s) {
// On transforme le buffer en string et on enlève le \n
s = s.toString().replace(/\n/g, '');
// On va parcourir tous nos clients connectés pour leur envoyer un évènement
clients.forEach(function (socket) {
socket.emit('serverConsole', s);
});
});
console.log('Ecrivez dans la console pour que les clients recoivent votre message !');
@atinux
Copy link
Author

atinux commented Apr 4, 2013

Vous devez avoir node.js et le module socket.io d'installé sur votre machine.

Ensuite, il vous suffit de lancer node console-socket.js.

Rendez-vous sur http://localhost:8080 avec un navigateur, et ouvrez la console sur navigateur (f12 pour Chrome).

Retournez sur la console node.js, écrivez du texte puis appuyer sur la touche Entrée (ou ctrl + d).

-> Regarder le message dans la console de votre navigateur internet !

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