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.


Reply via email to