No, that is not safe.  socket.ondata is an internal API, and may
change without notice, even in stable branches.

On Thu, Apr 19, 2012 at 09:49, Jann Horn <jannh...@googlemail.com> wrote:
> On Thu, Apr 19, 2012 at 09:43:56AM -0700, Joran Greef wrote:
>> I spotted this in the source of net.js:
>>
>> // Optimization: emit the original buffer with end points
>>     if (self.ondata) self.ondata(buffer, offset, end);
>>
>> Is it safe to use ondata to avoid the buffer.slice overhead introduced when
>> otherwise calling on('data') callbacks?
>
> If you're the only one listening on the socket, I think it should be no 
> problem. However, as soon
> as someone else starts using .on('data') on the same socket, your speed 
> advantage is gone, and as
> soon as someone else tries to also use .ondata (or you try to use it twice) 
> on the same socket, the
> old callback gets kicked out. So, it might be a good idea if you're sure 
> you're the only one messing
> with the socket.

Reply via email to