2015-08-19 10 views
7

Se faccio console.log (socket) ottengo un oggetto socket in firebug. Nell'oggetto potrei vedere una proprietà con id e potrei vedere il valore dell'ID. Ma quando faccio console.log (socket.id) ottengo undefined. perché?perché socket.id non è definito nel browser

var socket = io(); 
    $(document).ready(function(){ 
     console.log(socket); 
     console.log(socket.id); 
     console.log(socket.ids); 
     $(".click").on("click", function(e){ 
      alert("clicked") 
      socket.emit("clicked", socket.id) 
      $(this).addClass("removeclick"); 
     }) 
    }); 

ps ho potuto ottenere socket.ids che è 0, ma non socket.id.

+0

Quando faccio 'console.log()' in Firebug funziona come previsto. Hai provato? – slebetman

+0

Inoltre, prova a cambiare il tuo codice in 'console.log (JSON.stringify (socket))' e penso che capirai cosa sta succedendo. – slebetman

+0

per 'console.log (JSON.stringify (socket))' Ricevo TypeError: valore dell'oggetto ciclico. È quello che dovrei vedere? –

risposta

4

Socket.io necessita di tempo per stabilire la connessione. Il modo migliore che ho trovato per ottenere l'ID sul lato client è:

socket.on('connect',() => {console.log(socket.id)}); 

'collegare' è evento di sistema che emette quando la connessione è pronta.

(la mia versione socket.io corrente è 1.7.2)

Problemi correlati