I implement my own protocols over stdio all the time. Node doesn't wait till 8k of data is queued before sending. You just need to treat the same as a TCP stream and not assume anything about the chunk sizes. The simplest framing protocol for binary data is to send a 4byte length header before each message. Then on the receiving end, implement an interruptable state machine parser. Have this parser emit message events with the original message bodies reconstructed and do you protocol/application logic from there. On Aug 21, 2012 5:31 AM, "Tomithy Too" <[email protected]> wrote:
> Hi Everyone, > > I am fairly new to Node.js and I have a hard time trying to figure this > one out. Here's I am trying to do: > > I have a node instance acting as a master program who will spawn other > long running applications (possible up to 100 programs) (that is not a > node.js instance) as worker applications. I would like my node instance to > be able to communicate with them via a REPL style, that is 1) node would > issue "work commands" to the worker applications, 2) and the worker > applications would be reply with "acknowledgements", "work done" or "error" > back to the node, so 3) node.js could effective schedule jobs and optimize > the worker applications. > > The problem here is that the streams between node and the child_process > are buffered by default to a length of 8192 bytes, which means that I have > to pad my message until it is of this length which is inelegant. I want a > much smaller buffer for message, which presumably would be give less > communications overhead, and I dont want to be counting characters to make > just they return in the same buffer at every message response. Making > stream emit a "data" on detection of a "\0" character would be idea. > > I have tried, various custom stdio options for > child_process<http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options>, > to try to modify the buffer length but it was to no avail. Help or pointers > would be very much appreciated! > > Cheers > Tomithy > > > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
