socket.io作为客户端

有什么办法可以运行socketio作为客户端(不是浏览器,而是一个nodejs脚本)

我需要从服务器向一些客户端(浏览器)和另一台Linux机器(只运行nodejs获取variables,不使用浏览器)传输数据。

任何意识都是值得欢迎的

问候

github上有一个实现了socket.io客户端的项目。 看看这里:

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.stringify(msg)); }); socket.connect(); 

我相信你可以使用socket.io-client。 需要在Node.js代码中使用它,就像在客户端/浏览器中一样。 我现在也发现这个有趣的教程=> http://liamkaufman.com/blog/2012/01/28/testing-socketio-with-mocha-should-and-socketio-client/

require('socket.io-client')并运行Alfred指出的$ node client.js 。 我确认这适用于socket.io-client v1.4.8。 为了演示,请看下面的代码:

 // 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. }); }); 

服务器:

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

在服务器上添加$ node server.js ,然后在另一个terminal上运行客户端$ node client.js ,观察发生的奇迹:

 $ node client.js Hello universe! 

有用! 一个非常方便的方法来testing你的socket.io API。

在这种情况下,使用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); }); 

这是我的代码。 祝你好运。