2012-01-28 32 views
7

là có cách nào để chạy socketio như một khách hàng (không phải là một trình duyệt, nhưng một kịch bản nodejs)socket.io như một khách hàng

tôi cần phải truyền dữ liệu từ một máy chủ với một số khách hàng (trình duyệt) và khác máy linux (chỉ chạy nodejs để có được các biến, không có trình duyệt)

Bất kỳ ideias được chào đón

Trân

+0

Có vẻ như một bản sao của câu hỏi này: http://stackoverflow.com/questions/3842565/is-there-a-browserless-websocket-client-for-node-js-that-does-not-need-to -sử dụng một –

Trả lời

4

có một dự án trên github mà thực hiện một khách hàng socket.io. Hãy xem ở đây:

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

Trong trường hợp đó, hãy sử dụng yêu cầu 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); 
}); 

Đây là mã của tôi. chúc may mắn.

1

Chỉ require('socket.io-client') và chạy $ node client.js như được chỉ ra bởi Alfred. Tôi xác nhận điều này hoạt động với socket.io-client v1.4.8. Để chứng minh, xem đoạn mã sau:

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

Máy chủ:

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

spin lên máy chủ với $ node server.js và sau đó khách hàng $ node client.js trong thiết bị đầu cuối khác và xem điều kỳ diệu xảy ra:

$ node client.js 
Hello universe! 

Nó hoạt động! Một cách rất tiện lợi ví dụ để kiểm tra API socket.io của bạn.

Các vấn đề liên quan