2017-07-31 7 views
0

私のコード 'main.js'で、クライアントのソケットIDを印刷しようとしています。クライアントをサーバー 'main.js'に接続すると、コードはコンソールまたはブラウザのいずれにも印刷しません。socket.ioで一意のクライアントIDを取得するにはどうすればよいですか?

サーバ側コード(main.js):

var app = require('express')(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 
var port = 8000; 
server.listen(port) 

app.get('/',function(req,res){ 
    res.send({name:ID}); 
}); 

var ID; 
io.on('connection',function(socket){ 
     ID = socket.id; 
     console.log('client id - '+ID);  
}); 
+0

あなたは以下の答えでどのように乗り越えましたか? – halfer

答えて

1

は小さなエラーのように見えます。ソケットioサーバーイベントはconnections(複数)ではなく、connect/connectionです。 See docs。私は、これは、サーバーとクライアントの両方で動作していることを確認することができます

server.js

var app = require('express')(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 
var port = 8000; 
server.listen(port) 

app.get('/',function(req,res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

io.on('connection',function(socket){ 
    ID = socket.id; 
    console.log('client id - '+ socket.id);  
}) 

index.htmlを

<!doctype html> 
<html lang="en"> 
<head></head> 
<body> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>  
    <script> 
     var socket = io.connect('http://localhost:8000'); 
     socket.on('connect', function(data) { 
      console.log('socket connected') 
     }); 
    </script>   
</body> 
</html> 

:ここ

は実施例であります。

関連する問題