Ho creato una semplice applicazione Web che esegue alcune comunicazioni tramite un server node.js utilizzando socket.io.Il socket.io riconnette la connessione di riesecuzione?
Quando un utente si connette, il nodo comunica informazioni di ritorno che indicano al client di iscriversi a determinati eventi. Funziona bene
Ma se si lascia inattivo il browser, il client si abbona agli eventi due volte. Il processo di sottoscrizione funziona così:
Quando un utente si connette node.js riceve un messaggio 'adduser'
Le due cose fondamentali che hapen in quella funzione sono questo:
socket.on('adduser', function(data)
<snip>
socket.emit('nodeinfo', {node_id: NODE_ID});
socket.emit('update', {msg: 'you are connected'});
La presa. emit ('nodeinfo') segnala al client di iscriversi agli eventi.
Così il cliente ha
socket.on('nodeinfo', function(data) { ... }
Il fatto è che non è mai dire 'si è connessi' due volte, nessuno dei console.log() in 'adduser' ottenere di nuovo chiamato sul lato nodo. L'unica cosa che sembra succedere è che node.js emette di nuovo nodeinfo (o così il cliente pensa) facendo sì che il client si riesegua nuovamente.
Qualcuno può spiegarmi come si ricolleghi in socket.io e come possa accadere?
Sì. Identico al risultato, ho appena notato cosa succede con la nostra app. Grazie – Xin