Mi sono appena imbattuto in questo problema utilizzando alcuni esempi precedenti. Ecco la risposta che ho trovato: Migrating 0.6 to 0.7+, che riproduco qui sotto.
In v0.6, socket.send
sarebbe convertire automaticamente un oggetto come {a: 'b'}
a JSON. Dovresti inviare i dati a un cliente con:
socket.send({a: 'b'});
Mentre questo è interessante, rappresenta un problema fondamentale. JSON non codifica solo oggetti, ma anche stringhe, numeri, ecc.! Pertanto, l'API è più chiara se si dichiara esplicitamente di voler passare JSON (poiché c'è una penalità legata alle prestazioni associata alla codifica/decodifica JSON).
In v0.7, utilizzare la bandiera json
:
socket.json.send({a: 'b'});
Ora è anche possibile emettere e ricevere eventi personalizzati tra il browser e il server:
socket.emit('my_event', {a: 'b'});
Argomenti per eventi vengono codificati in JSON automaticamente per te.
Funziona come un incantesimo per me quando invio al mio client Android, evviva! – Jack