voila trovato il problema di trasmissione. il protocollo websocket spezzetta la trasmissione in frame quando i dati da inviare sono parecchi. ma non mi è chiara 1 il perché e 2 il come.
il primo frame è sempre da 128k, quindi credo che quando hai più dati da inviare di 128k inizia la divisione in frame, ma poi gli altri possono avere altre dimensioni.
tipo io col mio schermo pocciando al massimo tutto lo spazio disponibile, con tanto info casuali, colori e linee, sono arrivato a dover trasmettere circa 900k (porco dio!! per salvare un solo disegno cazzo! e col mio schermo del portatile, che non è di certo un 4k. il db dovrà essere bello capiente)
e lato server ho ricevuto un frame da 128k
uno da circa 500k
e un terzo coi restanti 300k.
quindi sta a me scoprire tramite gli header che ci sono nei frame che ricevo, se si tratta di un messaggio completo o di un pezzo. ed allora concatenare.
se non ho capito male, il grosso websocket php che ho trovato su github gestisce già questa cosa, ma non riesco a farlo funzionare ed ho guardato poco il codice. mi tocca studiarmi un po l’argomento.
e spero che in nodejs tutta questa roba sia facile.
ovviamente anche lato client ho lo stesso problema. il php invia una stringa json_encode del mia mega oggetto, e lato client mi ritrovo solo una parte della stringa se è troppo lunga. quindi il json.parse ovviamente fallisce visto che il json non è completo.
spero almeno che i frame arrivino in ordine, se no sono cazzi amari.