On 1/28/11 5:02 PM, Francesco Vivoli wrote:
No, it's likely that the remote peer hasn't read the data you sent
previously, and the send socket is full, so the write is delayed. To be
confirmed...

The MessageSent event is only emmitted when the IoProcessor was able to
write the data fully into the socket, and the socket informs the IoProcessor
when it's ready for a new write.


mmh, I'm not sure I get what you mean here...could you elaborate a bit?

When you write a message to the client (the peer), the system is just trying to push it to the socket. if the socket is full, then it will wait until it's ready for a new write. A socket can be full if the remote peer hasn't read it.

In any case, you write a message, which is translated to bytes, and until all the bytes are written into the socket, then the MessageSent event is not created.

  Last, about upgrading to 2.0.2. I'm trying right now and unfortunately it
seems that this decoder no longer works:( For some reason it doesn't hold
state as it used to do in 2.0.0-M6...

It should...



I think I found the sneaky bit.


the implementation of this decoder uses class attributes rather the
IoSession to hold state, which seems to be the correct approach. Now, how
using attributes has been working smoothly for one year it's not clear to
me.
May be we fixed a bug that made you think it was working before :)


--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to