socket.io en tant que client

est-il possible d’exécuter socketio en tant que client (pas un navigateur, mais un script nodejs)

J’ai besoin de diffuser les données d’un serveur sur certains clients (navigateurs) et sur un autre ordinateur Linux (uniquement sur nodejs pour obtenir des variables, pas de navigateur)

Toute idée est la bienvenue

Cordialement

Il existe un projet sur github qui implémente un client socket.io. Jetez un coup d’oeil ici:

https://github.com/remy/Socket.io-node-client

var socket = new io.Socket('localhost', 8000); socket.on('connect', function () { console.log('yay, connected!'); socket.send('hi there!'); }); socket.on('message', function (msg) { console.log('a new message came in: ' + JSON.ssortingngify(msg)); }); socket.connect(); 

Je crois que vous pourriez simplement utiliser socket.io-client. exigez cela et utilisez-le dans votre code node.js comme dans le navigateur / client. J’ai aussi trouvé ce tutoriel intéressant maintenant => http://liamkaufman.com/blog/2012/01/28/testing-socketio-with-mocha-should-and-socketio-client/

Il suffit d’ require('socket.io-client') et d’exécuter $ node client.js comme l’a souligné Alfred . Je confirme que cela fonctionne avec socket.io-client v1.4.8. Pour démontrer, voir le code suivant:

 // client.js var io = require('socket.io-client'); var socket = io('http://localhost:3000/'); socket.on('connect', function () { socket.emit('echo', {msg: 'Hello universe!'}, function (response) { console.log(response.msg); socket.disconnect(); // otherwise the node process keeps on running. }); }); 

Le serveur:

 // server.js var io = require('socket.io')(3000); io.on('connection', function (socket) { socket.on('echo', function (data, response) { response(data); }); }); 

$ node server.js le serveur avec $ node server.js puis le client $ node client.js dans un autre terminal et observez la magie se $ node client.js :

 $ node client.js Hello universe! 

Ça marche! Un moyen très pratique, par exemple, de tester votre API socket.io.

Dans ce cas, utilisez la requête http.

 var port=3000; //original port var bridge = express.createServer( express.logger() , express.bodyParser() ); bridge.post('/msg', function(req, res){ res.writeHead(200,{'Content-Type':'text/plain'}); //res.write(req.params.msg); res.end(req.params.msg); console.log(); io.sockets.in().emit('message', "chat", req.body.user_id,req.body.msg); //SEND! }); bridge.listen(parseInt(port)+1,function() { var addr = bridge.address(); console.log(' app listening on http://' + addr.address + ':' + addr.port); }); 

Ceci est mon code. bonne chance.