

クライアントからSocket.ioに接続しているクライアント一覧を取得したいと思っています。

[code]

    var http = require("http");
    var server = http.createServer(function(req,res) {
        res.write("Hello World!!"); // ・・・　①
        res.end(); // ・・・　②
    });
    
    // socketioの準備
    var io = require('socket.io')(server);
    
    // クライアント接続時の処理
    io.on('connection', function(socket) {
        console.log("client connected!!")
    
        // クライアント切断時の処理
        socket.on('disconnect', function() {
            console.log("client disconnected!!")
        });
        // クライアントからの受信を受ける (socket.on)
        socket.on("from_client", function(obj){
            console.log(obj)
        });
    });
    
    server.listen(8080);
    
[/code]

の①②の部分を

[code]

    //接続しているクライアント情報取得    
    var clients = io.sockets.clients();
    //接続しているクライアント数取得 
    var count = clients.length;
    
    if (count !== 0) {
        for (var i = 0; i < count; i++) {
            res.write(clients[i]);
            res.write("</ br>");
            res.end();
        }
    }
    
[/code]

にして、クライアントから`http://<node.jsのサーバドメイン>/`にアクセスすれば一覧が出るようにしたいです。  
しかし、この中ではioのインスタンスも作られていないためエラーが生じます。

どのように対処すればいいかご存じの方、ご教示お願いします。


CC BY-SA 3.0
2015-08-10T05:29:49.710
14226
2015-08-31T16:26:49.177
2015-08-31T16:26:49.177
5519
8593
question
node.js socket.io
クライアントからSocket.ioに接続しているクライアント一覧を取得


①②の時点はコールバック関数の中なのでioのインスタンスは作られていると思います。  
ただこちら(socket.io 1.3.6)で試したところclients関数が無くてエラーが出たので、  
io.eio.clientsCountやio.eio.clientsなどでクライアントの情報が取れました。  
正しい取り方なのかはわかりませんが…。


CC BY-SA 3.0
2015-08-10T23:46:47.727
14250
2015-08-10T23:46:47.727
2232
14226
answer