Last active
December 15, 2015 19:19
-
-
Save atinux/5310929 to your computer and use it in GitHub Desktop.
Envoyer des sockets depuis la console node.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 !'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 !