2012-01-28 4 views
7

есть ли способ запустить socketio как клиент (не браузер, а nodejs скрипт)socket.io как клиент

мне нужно транслировать данные с сервера на некоторых клиентов (браузеры) и к другому Linux машина (только работает nodejs, чтобы получить переменные, не браузер)

Любой Ideias приветствуется

с уважением

+0

Похож на дубликат этого вопроса: http://stackoverflow.com/questions/3842565/is-there-a-browserless-websocket-client-for-node-js-that-does-not-need-to -использовать –

ответ

4

Существует проект на 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(); 
0

В этом случае используйте 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); 
}); 

Это мой код. удачи.

1

Всего require('socket.io-client') и пробег $ node client.js как указано Alfred. Я подтверждаю, что это работает с 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, а затем клиент $ node client.js в другом терминале и наблюдать волшебство происходит:

$ node client.js 
Hello universe! 

Это работает! Очень удобный способ, например, протестировать ваш API socket.io.

Смежные вопросы