Anything else you can think of? I don't really understand now the streams should end.
On Sunday, May 27, 2012 7:23:10 PM UTC-4, Mikeal Rogers wrote: > > these are both read/write streams but you don't appear to be emitting > "end" after end() is called. that's an issue. > > On May 27, 2012, at May 27, 20124:19 PM, Tim Dickinson wrote: > > So I thought about what you had said and I came up with this > https://gist.github.com/2816361. What tips can you give me if any on > making the "Stream"'s? > > On Monday, April 30, 2012 6:36:22 PM UTC-4, Marco Rogers wrote: >> >> There are several potential issues I'm seeing here. But it looks like you >> have an incoming stream of json messages that are encrypted and separated >> by newlines. You want parse the stream, decrypt each message and then pass >> the message to a data handler that expect to each message one by one. Is >> that accurate? >> >> This is a great use case for node streams. Read up on them and create a >> stream (or multiple streams) that encapsulates this behavior. You might end >> up with a an elegant solution that looks like multiple streams piped >> together. >> >> decryptedStream.on('data', function(data) { >> // do something with json object >> }); >> socket.pipe(messageSplitter).pipe(decrytptedStream) >> >> Here are some good resources to check out. >> >> http://nodejs.org/api/stream.html >> http://maxogden.com/node-streams >> https://github.com/dominictarr/event-stream >> >> In short, try to separate concerns, splitting the message stream, >> decrypting, json parsing, etc. >> >> :Marco >> >> >> On Monday, April 30, 2012 3:24:37 PM UTC-7, Tim Dickinson wrote: >>> >>> Oh sorry and you would use it like so >>> >>> >>> socket.on('data', bufferJson(key, function(data) { >>> //do something with json object >>> })) >>> >>> On Monday, April 30, 2012 6:23:11 PM UTC-4, Tim Dickinson wrote: >>>> >>>> Hey all. >>>> >>>> How can i better write this snippet of code? >>>> >>>> var bufferJson = function(key, requestEvent) { >>>> var buffer = [] >>>> var cryptoFn = function(message) { >>>> var decipher = crypto.createDecipher('aes-256-cbc', key) >>>> return decipher.update(message, 'hex', 'utf8') + >>>> decipher['final']('utf8') >>>> } >>>> function onData(data) { >>>> if(data.indexOf('\n') > -1) { >>>> >>>> var message = buffer.join(''); >>>> data = data.split('\n'); >>>> message += data.shift(); >>>> buffer = []; >>>> >>>> try { >>>> console.log(cryptoFn(message)) >>>> var json = JSON.parse(cryptoFn(message)); >>>> } catch(e) { >>>> return util.error('Could not parse message: ' + e.message); >>>> } >>>> >>>> requestEvent(json) >>>> data = data.join('\n'); >>>> >>>> if(data.length) { >>>> onData(data); >>>> } >>>> >>>> } else { >>>> buffer.push(data); >>>> } >>>> } >>>> >>>> return onData >>>> } >>>> >>> > -- > 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 nodejs@googlegroups.com > To unsubscribe from this group, send email to > nodejs+unsubscr...@googlegroups.com > 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 nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en