0

次の例を見てください。

var net = require('net');
var server = net.createServer(function(c) { //'connection' listener
  console.log('server connected');
  c.on('end', function() {
    console.log('server disconnected');
  });
  c.write('hello\r\n');
  c.pipe(c);
});
server.listen(8124, function() { //'listening' listener
  console.log('server bound');
});

createServer()関数の外から c.write にアクセスする方法が欲しい

基本的に私がやりたいことはこれです:

app.get('/msg/:theMsg', function (req, res) {
    res.setHeader('Content-Type', 'application/json');

server.c.write(req.params.theMsg, socketName); // i got socketName stored in an array

});
4

2 に答える 2

1

これに沿った何かですが、ソケットがまだ生きているかどうかなどを確認するために、さらにチェックを行う必要があります。

var net = require('net');
var sockets = {};
var server = net.createServer(function(c) { //'connection' listener
    var name = generate_name_from_con(c);
    console.log('server connected');
    sockets[name] = c;
    c.on('end', function() {
        delete sockets[n];
        console.log('server disconnected');
    });
    c.write('hello\r\n');
    c.pipe(c);
});
server.listen(8124, function() { //'listening' listener
    console.log('server bound');
});

app.get('/msg/:theMsg', function (req, res) {
    res.setHeader('Content-Type', 'application/json');

    if(socketName in sockets) sockets[socketName].write(req.params.theMsg);

});
于 2013-08-31T17:02:25.870 に答える
0

cオブジェクトをパラメーターとして別の関数に渡すだけです。

var net = require('net');
var server = net.createServer(function(c) { //'connection' listener
   console.log('server connected');
   c.on('end', function() {
      console.log('server disconnected');
   });
   writestuff(c);
   c.pipe(c);
});
server.listen(8124, function() { //'listening' listener
   console.log('server bound');
});
function writestuff(c) {
   c.write('eueueueue');
}
于 2013-08-31T16:59:38.407 に答える