socketio をクライアントとして実行する方法はありますか (ブラウザーではなく、nodejs スクリプト)
サーバーから一部のクライアント (ブラウザ) および別の Linux マシンにデータをブロードキャストする必要があります (変数を取得するために nodejs のみを実行し、ブラウザは使用しません)。
どんなアイデアでも大歓迎です
よろしく
socketio をクライアントとして実行する方法はありますか (ブラウザーではなく、nodejs スクリプト)
サーバーから一部のクライアント (ブラウザ) および別の Linux マシンにデータをブロードキャストする必要があります (変数を取得するために nodejs のみを実行し、ブラウザは使用しません)。
どんなアイデアでも大歓迎です
よろしく
socket.io クライアントを実装する github のプロジェクトがあります。ここを見てください:
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')
走って。これがv1.4.8で動作することを確認しました。実演するには、次のコードを参照してください。$ node client.js
socket.io-client
// 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 リクエストを使用します。
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);
});
これは私のコードです。幸運を。