2012-02-12 16 views
0

私はノードJSとsocket.ioを使いこなしています。少し失われています。次のコードでは、作成時にソケットへの参照を保存してから、コンソールから取得したメッセージを送信します。すべてうまくいきますが、これは正しいアプローチではないように感じます。ノードJS&socket.io - メッセージの基本を送信

あなたの考えは?

var app = require('http').createServer(handler) 
    , io = require('socket.io').listen(app) 
    , fs = require('fs'); 

app.listen(80); 

function handler(req, res) { 
    fs.readFile('C:/node/index.html', 
     function (err, data) { 
      if (err) { 
       res.writeHead(500); 
       return res.end('Error loading index.html'); 
      } 

      res.writeHead(200); 
      res.end(data); 
     }); 
} 

var Sender = { 
    sockets:[], 
    sendMsg:function (msg) { 
     for (var i = 0; i < Sender.sockets.length; i++) { 
      Sender.sockets[i].emit('news', msg); 
     } 
    } 
}; 


process.openStdin().addListener("data", function (text) { 
    Sender.sendMsg(text.toString()); 
}); 

io.sockets.on('connection', function (socket) { 
    //Saving reference 
    Sender.sockets.push(socket); 
}); 

答えて

0

実際には、Senderとそのすべての参照を削除できます。

process.openStdin().addListener("data", function (text) { 
    io.sockets.emit('news', text.toString()) 
}); 

これにより、接続されているすべてのクライアントにメッセージが送信されます。

http://socket.io/にいくつかの例がありますが、それらをチェックすることをおすすめします。

+0

アドバイスありがとうございます、私はそれをチェックアウトします;-) –

関連する問題