Estoy desarrollando una aplicación multiproceso con Node.js. En esta aplicación, un proceso principal generará un proceso secundario y se comunicará con él utilizando un protocolo de mensajería basado en JSON sobre una tubería. Descubrí que los mensajes JSON grandes pueden "cortarse", de modo que un único "fragmento" emitido al oyente de datos en el conducto no contiene el mensaje JSON completo. Además, los pequeños mensajes JSON se pueden agrupar en el mismo fragmento. Cada mensaje JSON estará delimitado por un carácter de nueva línea, por lo que me pregunto si ya existe una utilidad que almacenará en búfer el flujo de lectura de canal de modo que emita una línea a la vez (y, por lo tanto, para mi aplicación, un documento JSON a la vez). Parece que sería un caso de uso bastante común, así que me pregunto si ya se hizo.Flujos orientados a la línea en Node.js
Agradecería cualquier orientación que cualquiera pueda ofrecer. Gracias.
¿Ha pensado usar sólo buena HTTP de edad ? ¿Por qué estás inventando un nuevo protocolo IPC? El envío de mensajes JSON a través de HTTP es un problema resuelto, y el nodo es excelente en HTTP. –
¿Podría describir cómo lo haría con HTTP?En este momento, no veo cómo esto cambiaría la naturaleza del problema, ya que creo que aún estaría leyendo fragmentos de una transmisión. – jbeard4
Codifica el proceso hijo como un servidor HTTP node.js normal. La capacidad de aceptar y enviar mensajes JSON es proporcionada por el middleware bodyParser express.js/connect.js. https://github.com/senchalabs/connect/blob/master/lib/middleware/bodyParser.js. Esto maneja los fragmentos en el modo estándar node.js conducido por evento. No es necesario reinventar este mecanismo. –