2017-02-14 6 views
0

私は管理者が他のすべてのユーザーを確認できる特殊な名前空間を作成したいと考えています。あなたはsocket.io> 1の名前空間をどうやって見つけますか?

しかし、私は名前空間を取得する適切な方法を見つけることができません。

最も近いのはでした。これは私にhttp://localhost:3000/adminを与えましたが、私はそれが醜いと判断し、より良い選択肢があると思います。

+0

あなたはmk12ok 'undefined' @ socket.nsp.name' – mk12ok

+0

'でそれを見つけるだろう –

答えて

0

サーバー側ではsocket.nsp.nameにあり、クライアント側ではsocket.nspにあります。

例:

server.js:

const express = require('express'); 
const app = express(); 
const http = require('http').Server(app); 
const io = require('socket.io')(http); 

app.use(express.static(__dirname+'/public')); 

io.of('/some-namespace').on('connection', function (socket) { 
    console.log('a client connected to: ' + socket.nsp.name); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

公共/ index.htmlを

<!doctype html> 
<html> 
    <head> 
    <title>Testing socket.io - custom namespace</title> 
    </head> 
    <body> 
    <h1 id="socketio"> not connected </h1> 
    <script src="socket.io/socket.io.js"></script> 
    <script> 
     var socket = io('/some-namespace'); 
     socket.on('connect', function() { 
      document.getElementById("socketio").innerHTML = "connected to " + 
       socket.nsp; 
     }); 
    </script> 
    </body> 
</html> 
関連する問題