passing data between ChannelHandlers
Matt DeLuco
list_usr at spacebox.net
Mon Oct 24 22:56:15 EDT 2011
On that topic, is there a VCS from which netty can be downloaded?
MD
On Mon, Oct 24, 2011 at 10:37 PM, Matt DeLuco <list_usr at spacebox.net> wrote:
> Thank you, Norman!
>
> I have to say though, this all seems like a very roundabout way of keeping
> track of session data for a Channel.
>
> Is there any interest in adding a session interface to HttpRequest,
> something like javax.servlet.http.HttpSession found in
> javax.servlet.http.HttpRequest?
>
> I thought if there was an interface one could implement the storage
> mechanism - file/database/memcached, etc.
>
> MD
>
>
> On Mon, Oct 24, 2011 at 6:16 AM, Norman Maurer <
> norman.maurer at googlemail.com> wrote:
>
>> Hi there,
>>
>> just to follow up. I committed some code to handle the removal without
>> user interaction:
>>
>>
>> https://issues.jboss.org/browse/NETTY-447?page=com.atlassian.jirafisheyeplugin:fisheye-issuepanel#issue-tabs
>>
>> So it will be in the next release...
>>
>> Bye
>> Norman
>>
>> 2011/10/24 Norman Maurer <norman.maurer at googlemail.com>:
>> > Hi Matt,
>> >
>> > comments inline..
>> >
>> > 2011/10/24 Matt DeLuco <list_usr at spacebox.net>:
>> >> I found what I was looking for - a brief example of ChannelLocal is
>> found in
>> >> the ChannelHandler documentation (ps: it might be worth repeating in
>> the
>> >> ChannelLocal docs..) But now I'm wondering:
>> >> The example shows a DataServerState class - where would that class be
>> >> instantiated such that all handlers have access to it? I thought I
>> might
>> >> instantiate it in my server startup code, pass it to the
>> >> ChannelPipelineFactory where I could pass it on to the constructor of
>> each
>> >> ChannelHandler. Is there another way?
>> >
>> > I think thats the easiest way and should work very well.
>> >
>> >> Also, at some point before the Channel closes would I have to be sure
>> to
>> >> remove any ChannelLocal variable references? That is, ChannelLocals
>> map
>> >> values to Channels, so would I have to be sure to remove each reference
>> so
>> >> values to closed Channels don't pile up, creating a memory leak? If
>> so,
>> >> how/where could I attach an event handler to a Channel to do this?
>> Would I
>> >> have to do this in a ChannelHandler (I don't like that idea, because
>> which
>> >> ChannelHandler do I put it in?) or create some kind of custom
>> >> ChannelFactory?
>> >
>> > Just add an SimpleUpstreamChannelHandler and override the
>> > channelClosed(..) method. There you can remove it.
>> > I think it would also be nice to allow the ChannelLocal to cleanup it
>> > self by register and ChannelListener to it that takes care of the
>> > remove and so prevent the leak. I will open a jira issue for it and
>> > implement it.
>> >
>> >
>> >> Thanks.
>> >> MD
>> >>
>> >> On Fri, Oct 21, 2011 at 3:36 AM, Norman Maurer
>> >> <norman.maurer at googlemail.com> wrote:
>> >>>
>> >>> I was using it before in a project but remoted it in favor of
>> >>> ChannelHandlerContext.setAttachment(..).
>> >>>
>> >>> But it worked quited fine for me. You can see the old code here:
>> >>>
>> >>>
>> >>>
>> http://svn.apache.org/viewvc/james/protocols/tags/protocols-1.5/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelUpstreamHandler.java?view=markup
>> >>>
>> >>> Bye,
>> >>> Norman
>> >>>
>> >>> Ps: What does not work for you ?
>> >>>
>> >>> 2011/10/21 Matt DeLuco <list_usr at spacebox.net>:
>> >>> > Where can I find some examples of ChannelLocal in use?
>> >>> > I'm not getting the results I expect, but I don't think I'm using it
>> >>> > correctly either.
>> >>> > MD
>> >>> >
>> >>> > On Sun, Oct 16, 2011 at 7:14 AM, Norman Maurer
>> >>> > <norman.maurer at googlemail.com> wrote:
>> >>> >>
>> >>> >> You can set anything you want as attachment. But it's only visible
>> in
>> >>> >> the same handler....
>> >>> >>
>> >>> >> If you want to share stuff between handler you should checkout
>> >>> >> ChannelLocal
>> >>> >>
>> >>> >> Bye
>> >>> >> Norman
>> >>> >> 2011/10/16, Matt DeLuco <list_usr at spacebox.net>:
>> >>> >> > Before composing this message I had noticed
>> >>> >> > ChannelHandlerContext.setAttachment(Object) and getAttachment().
>> But
>> >>> >> > for some reason I came to the conclusion that it wasn't intended
>> for
>> >>> >> > what I want to do.
>> >>> >> >
>> >>> >> > I came to that conclusion in part because I found it strange that
>> >>> >> > it's
>> >>> >> > only possible to set one attachment, rather than being able to
>> attach
>> >>> >> > a set (or map) of objects. Could I just attach a map to the
>> context
>> >>> >> > and store whatever I want in that map, to pass objects between
>> >>> >> > ChannelHandlers?
>> >>> >> >
>> >>> >> > MD
>> >>> >> >
>> >>> >> >
>> >>> >> > On Sat, Oct 15, 2011 at 9:42 PM, Matt DeLuco <
>> list_usr at spacebox.net>
>> >>> >> > wrote:
>> >>> >> >> Is it possible to pass data between ChannelHandlers, or store
>> data
>> >>> >> >> somewhere that the handlers in a specific pipeline/channel can
>> >>> >> >> access
>> >>> >> >> throughout the lifetime of the request?
>> >>> >> >>
>> >>> >> >> For example, I have my own class for dealing with http cookies,
>> >>> >> >> "CookieMap". I'd like to have a SimpleChannelHandler that
>> creates a
>> >>> >> >> CookieMap to be used by handlers further upstream, and then sets
>> the
>> >>> >> >> cookies in the CookieMap on the response on their way back
>> >>> >> >> downstream.
>> >>> >> >>
>> >>> >> >> MD
>> >>> >> >>
>> >>> >> >
>> >>> >> > _______________________________________________
>> >>> >> > netty-users mailing list
>> >>> >> > netty-users at lists.jboss.org
>> >>> >> > https://lists.jboss.org/mailman/listinfo/netty-users
>> >>> >> >
>> >>> >> _______________________________________________
>> >>> >> netty-users mailing list
>> >>> >> netty-users at lists.jboss.org
>> >>> >> https://lists.jboss.org/mailman/listinfo/netty-users
>> >>> >
>> >>> >
>> >
>> > Bye,
>> > Norman
>> >
>>
>> _______________________________________________
>> netty-users mailing list
>> netty-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/netty-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/netty-users/attachments/20111024/c1b8ed7d/attachment-0001.html
More information about the netty-users
mailing list