7

socketio をクライアントとして実行する方法はありますか (ブラウザーではなく、nodejs スクリプト)

サーバーから一部のクライアント (ブラウザ) および別の Linux マシンにデータをブロードキャストする必要があります (変数を取得するために nodejs のみを実行し、ブラウザは使用しません)。

どんなアイデアでも大歓迎です

よろしく

4

4 に答える 4

4

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();
于 2012-01-28T03:08:58.373 に答える
3

socket.io-client を使用できると思います。それを必要とし、それをクライアント/ブラウザの場合と同様に node.js コードで使用します。この興味深いチュートリアルも今見つけました => http://liamkaufman.com/blog/2012/01/28/testing-socketio-with-mocha-should-and-socketio-client/

于 2012-01-30T06:53:32.320 に答える
1

アルフレッドの指摘通り、ただrequire('socket.io-client')走って。これがv1.4.8で動作することを確認しました。実演するには、次のコードを参照してください。$ node client.jssocket.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 をテストするための非常に便利な方法です。

于 2016-09-29T12:54:37.910 に答える
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);
});

これは私のコードです。幸運を。

于 2012-02-10T02:32:11.307 に答える