Sto sviluppando un'applicazione multiprocesso utilizzando Node.js. In questa applicazione, un processo padre genera un processo secondario e comunica con esso utilizzando un protocollo di messaggistica basato su JSON su una pipe. Ho scoperto che i grandi messaggi JSON possono essere "tagliati", in modo tale che un singolo "blocco" emesso nel listener dei dati sulla pipe non contenga il messaggio JSON completo. Inoltre, piccoli messaggi JSON possono essere raggruppati nello stesso blocco. Ogni messaggio JSON sarà delimitato da un carattere di nuova riga, quindi mi chiedo se esiste già un'utilità che bufferizzerà il flusso di lettura della pipe in modo che emetta una riga alla volta (e quindi, per la mia applicazione, un documento JSON Al tempo). Sembra che sarebbe un caso d'uso abbastanza comune, quindi mi chiedo se sia già stato fatto.Streaming orientato alla linea in Node.js
Apprezzerei qualsiasi consiglio chiunque potesse offrire. Grazie.
Avete pensato solo usando il buon vecchio HTTP ? Perché stai inventando un nuovo protocollo IPC? L'invio di messaggi JSON su HTTP è un problema risolto e il nodo è ottimo su HTTP. –
Puoi descrivere come lo faresti con HTTP?In questo momento, non vedo come questo cambierebbe la natura del problema, poiché credo che tu stia ancora leggendo pezzi da un flusso. – jbeard4
Si codifica il processo figlio come un normale server HTTP node.js. La capacità di accettare e inviare messaggi JSON è fornita dal middleware express.js/connect.js bodyParser. https://github.com/senchalabs/connect/blob/master/lib/middleware/bodyParser.js. Questo gestisce i blocchi nel modo standard guidato da evento node.js. Non c'è bisogno di reinventare questo meccanismo. –