you have to check for null: If there is no data to consume, or if there are fewer bytes in the internal buffer than the size argument, thennull is returned, and a future 'readable' event will be emitted when more is available.
that means that, read returns null not before 'end' but always when there is no data in the read buffer. so your code is quite ok and how it should be. Am Dienstag, 11. Juni 2013 00:02:46 UTC+2 schrieb [email protected]: > > Hello folks, > > I'm creating a new tcp server using the new 0.10 API, and the the > new listener 'readable' is firing before 'end' when a connection is closed > by the client, end read() returns 'null', so is this behavior happening as > expected? In fact this is the same behavior of sockets in C. > > But this can cause a fatal error because read() returns a null, and you > will need to check the read() return before doing something. > > > socket.on('readable', function() { > > var chunk = socket.read(); > > if (chunk === null) return; /* fix, to let 'end' work and not crash > your app */ > > handle(chunk); > > }); > > > > Marcelo Pacheco > > -- -- 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 --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
