Hi,

I'm not netty expert, but from what I understand events (at least inbound 
ones, I'm not so used to manipulating outbound ones, but I guess the 
behaviour is mirrored) are not propagated except if you explicitly 
re-trigger them (with context.fireEventType(ev)) in the Handler method for 
the event.


Le mercredi 20 juillet 2016 20:28:03 UTC+2, L_DisplayName a écrit :
>
> I am implementing a custom FTP protocol using netty. However, to get 
> started I will have the server just send the length of the file, followed 
> by the file contents. To do this I am following the FileServer.java and the 
> FileServerHandler.java example that comes with netty. However, I have a few 
> questions in regards to how netty handles events intended to be handle by 
> just one handler when there are many handlers in the channel pipeline. For 
> example, consider FileServer.java and the FileServerHandler.java
>
> * FileServer.java*
>  p.addLast(
>     new StringEncoder(CharsetUtil.UTF_8),
>     new LineBasedFrameDecoder(8192),
>     new StringDecoder(CharsetUtil.UTF_8),
>     new ChunkedWriteHandler(),
>     new FileServerHandler());
>
> In the example all server outbound events will propagate in the following 
> order through the channel pipeline
>
>    1. FileServerHandler
>    2. ChunkedWriteHandler
>    3. StringEncoder
>
> However, the server sends a string to the client requesting the name of 
> the file to send.* My questions are: *
>
>    1. How does ChunkedWriterHandler handle the String since 
>    ChunkedWriterHandler is expecting a chunkedInput specifically a 
>    ChunkedFile? 
>    2. 
>    
>    The NETTY API is not clear on this, is the String ignored by the 
>    ChunkedWriterHandler and sent to the String encoder? If so, how is it 
>    discarded? I looked at the ChunkedWriterHandler code and I did notice a 
>    discard method, but I am unsure if this applies to this scenario:
>    
>    *discard method inside ChunkedWriterHandler* Object message = 
>    currentWrite.msg; if (message instanceof ChunkedInput) { ChunkedInput in = 
>    (ChunkedInput) message; try { //Do something; } else{ Closed Channel 
>    Exception }
>    3. 
>    
>    In addition, once the chunkedWriterHandler starts processing and 
>    sending chunkedInput through the channel pipeline, how does the 
>    StringEncoder handle chunkedInput? Does it ignore it (if so, how?) and 
> just 
>    forwards it to the next handler, however in this case there are no further 
>    handlers so does it just writes the data to the socket or add it to a 
> queue 
>    if flush was not called after write?
>    4. 
>    
>    How does any Encoder write data to the socket? in many of the netty 
>    examples: Telnet (StringEncoder), factorial (NumberEncoder), etc., the 
>    encoder just writes the String or int to a ByteBuf, BUT WHERE IN THE 
>    ENCODER CODE IS THE ByteBuf actually written and flushed to the 
> socket/wire?
>    
>

-- 
You received this message because you are subscribed to the Google Groups 
"Netty discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/netty/715a1b70-a8d6-49b3-ad63-f701fd90d43e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to