Write your state to the IoSession and read it from the handler.
On Aug 1, 2013 10:06 PM, "Hunter McMillen" <mcmil...@gmail.com> wrote:

> Ok I think I understand the ordering now, we probably don't need an
> Executor. Our main issue is still how to link the state machine with our
> IoHandlerAdaptor.
>
> As of right now, after a user is authenticated (by the statemachine),
> the sessionIdle() event of the statemachine calls sessionOpened of our
> IoHandlerAdapter; obviously this is a logic error because sessionIdle()
> will fire frequently.
>
> So two things:
> 1) Is there a way to leave the statemachine after we authenticate someone?
> 2) If not, how to map the finishing of authentication to our
> IoHandlerAdapter ,specifically we probably don't want to fire a
> sessionCreated() event (because a session was already created by the
> statemachine), we simply want to pass that to our handler.
>
> Thanks.
> Hunter
>
> On 8/1/13 9:54 PM, Ashish wrote:
> > On Fri, Aug 2, 2013 at 7:15 AM, Jon V. <sybersn...@gmail.com> wrote:
> >
> >> To my knowledge the executor filter does not guarantee any kind of
> order.
> >> This means that you should implement the authentication phase before the
> >> executor.
> >>
> > This is correct, with Executor filter ordering is not guaranteed. Do you
> > need an executor filter there?
> > It's usage is recommended if you have some intensive task in chain or in
> > IoHandler.
> >
> >
> >> Io->prorocol->authentication->executor->handler
> >>
> > This sound good. Alternative is to use OrderedThreadPoolExecutor, but go
> > simple first.
> > Implement stuff without Executor filter and then push that in if needed.
> >
> >
> >> You cannot lock on out of order messaging without a queue and attempt to
> >> re-order the messages.
> >> On Aug 1, 2013 9:33 PM, "Hunter McMillen" <mcmil...@gmail.com> wrote:
> >>
> >>> Sorry, the code is probably more useful to see, here is the entry point
> >>> to our application:
> >>>
> >>>         acceptor = new NioSocketAcceptor(
> >>> Runtime.getRuntime().availableProcessors() );
> >>>         acceptor.getFilterChain().addLast("executor", new
> >>> ExecutorFilter( Executors.newCachedThreadPool()));
> >>>         acceptor.getFilterChain().addLast("logger",
> >>> MudConfig.Logging.getFilter());
> >>>         acceptor.getFilterChain().addLast("codec",
> >>>                 new ProtocolCodecFilter(
> >>>                         new TextLineEncoder(), new CommandDecoder()
> >>>                 )
> >>>         );
> >>>
> >>> More importantly, my main question is how I can link the DONE state of
> >>> the state machine (AuthenticationHandler) and the IoHandlerAdapter. I
> >>> can post the code for these also, I just didn't want to overload the
> >>> thread.
> >>>
> >>> Thanks.
> >>> Hunter
> >>> On 8/1/13 5:47 PM, Jon wrote:
> >>>> You are not using an executor filter right? You have to implement
> >>> locking during the authentication phase if you are using thread
> >> scheduling.
> >>>> Sent from my iPhone
> >>>>
> >>>> On Aug 1, 2013, at 5:31 PM, Hunter McMillen <mcmil...@gmail.com>
> >> wrote:
> >>>>> Hello,
> >>>>>
> >>>>> I recently started working on a project with a friend that is a
> >>> text-based game. We were having trouble with ReadFuture's when trying
> to
> >>> get a username/password combination from the user so we decided to
> follow
> >>> the state machine example from Tapedeck TCP server on Mina's homepage:
> >>>
> >>
> http://mina.apache.org/mina-project/xref/org/apache/mina/example/tapedeck/
> >>>>> I have gotten the state machine to a point where it seems to be
> >> working
> >>> well. It starts, reads a username, then a password, then has some logic
> >> to
> >>> restart based on error; or it prints a message 'Authenticated'.
> >>>>> However our main application logic is going to be (our plan at least)
> >>> held in an IoHandlerAdapter, my question is what is a good way to
> >> integrate
> >>> the two of these:
> >>>>> 1) The state machine authentication filter from the example above
> >>>>> 2) An IoHandlerAdapter that will track information about connected
> >>> users and sessions
> >>>>> My confusion mainly lies in how to transition between the state
> >> machine
> >>> and the IoHandlerAdapter since they both respond to /sessionCreated
> /and
> >>> /sessionOpened /events.
> >>>>> Any help, ideas, or input would be appreciated.
> >>>>>
> >>>>> Thanks.
> >>>>> Hunter
> >>>
> >
> >
>
>

Reply via email to