2015-11-21 13 views

risposta

2

Non sarà possibile, poiché il socket è stato disconnesso dal server. L'evento sul server si attiva quando il server rileva la disconnessione (non magicamente prima di una frazione precedente) e il "ponte" tra client e server è già chiuso/interrotto/qualunque sia - nessuna connettività significa scambio di dati.

avete due opzioni su come fare qualcosa con il cliente disconnesso:

  1. database di uso o variabili locali per memorizzare alcune informazioni utente da 'socket.id' (ad esempio rintracciare utenti). Quando ricevi l'evento disconnect sul server, puoi vedere l'ID del socket che viene disconnesso. Usa questo id per fare cose necessarie come diminuire il numero di utenti online e trasmetterlo ad altri.

  2. (soluzione piuttosto scadente) attendere l'evento reconnect sul client e inviare i dati da lì quando la connessione verrà ristabilita. Naturalmente se il server rimane inattivo probabilmente i dati andranno persi.

Se è necessario eseguire alcune cose lato server soluzione semplice e 1 può funzionare bene, ma se avete qualcosa di complesso, come i dati modulo non salvati, si dovrà trovare un qualche tipo di salvataggio dei dati ad esempio in localStorage e sincronizzarlo su reconnect.

+0

non posso farlo ricontrollare altrimenti avrebbe risolto il mio problema anche se –

+0

quindi probabilmente memorizzare i dati in 'localStorage' e inviarlo di nuovo alla prossima connessione sarebbe la soluzione appropriata in questo caso. – kaytrance

+0

intendi nel socket tutto ciò che conta su di esso ID socket e tutto quello che vorrei salvare sotto l'ID socket del client e prendere la connessione dati secondo il desiderio –

Problemi correlati