是有什麼辦法可以作爲一個客戶端運行socketio(不是瀏覽器,而是一個腳本的NodeJS)socket.io作爲客戶端
我需要從服務器到客戶端的一些數據廣播(瀏覽器)和另一Linux機器(只運行到的NodeJS GET變量,沒有瀏覽器)
任何ideias歡迎
問候
是有什麼辦法可以作爲一個客戶端運行socketio(不是瀏覽器,而是一個腳本的NodeJS)socket.io作爲客戶端
我需要從服務器到客戶端的一些數據廣播(瀏覽器)和另一Linux機器(只運行到的NodeJS GET變量,沒有瀏覽器)
任何ideias歡迎
問候
有在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客戶端。需要在Node.js代碼中使用它,就像在客戶端/瀏覽器中一樣。我現在也發現這個有趣的教程=>http://liamkaufman.com/blog/2012/01/28/testing-socketio-with-mocha-should-and-socketio-client/
在這種情況下,使用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);
});
這是我的代碼。 祝你好運。
只要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!
它的工作原理!一個非常方便的方式來測試你的socket.io API。
看起來像這個問題的重複:http://stackoverflow.com/questions/3842565/is-there-a-browserless-websocket-client-for-node-js-that-does-not-need-to -用一個 – 2012-01-28 03:07:08