Why do you think you need a StreamIoHandler ?
Are the messages relatively short or rather long ?
Is there a big lag between receiving the beginning of a message
and receiving the end of the message ?

I have never tried StreamIoHandler, I guess to get started it's easier
to just implement a ProtocolDecoder/ProtocolEncoder and let MINA
handle the threading stuff.

But of course it should be possible to handle your use case with a
StreamIoHandler.

Maarten

On 3/17/06, cheng wei <[EMAIL PROTECTED]> wrote:
> hello Zohar Amir,
>   (method 1).You have said "The message are built as a PDU wrapping an XML
> message".you may create an simple example to show where the problem will
> happens,and show its critical part of code here.
>   (method 2).With the simple example,you can write same test unit and log
> message.They will help you to solve some problems.(if you don't know how to
> write test unit and log message,i have an simple example.If you need,send
> email to me.)
>
> 2006/3/17, Zohar Amir <[EMAIL PROTECTED]>:
> >
> > Hello list,
> >
> > I've posted here a request for help a few days ago but only got 1 reply,
> > which did not get me very far. I'll try explaining my problem again, in
> > the
> > hope of getting some more help.
> >
> > I need to put up a server that handles client requests. Each client
> > connects
> > via TCP to the server and then they exchange messages. The messages are
> > built as a PDU wrapping  an XML message.
> >
> > Looking at the examples I got with MINA, it seems that the best option is
> > using a StreamIoHandler (decision 1). When doing that I ran into some
> > problems:
> >
> > The processStreamIo method starts a new thread to handle the incoming
> > data.
> > This thread reads the input stream and decodes the incoming messages. The
> > first problem was stopping this thread when the sessionClosed method is
> > invoked, because the read methods are blocking. I solved this by closing
> > the
> > session's InputStream when the sessionClosed method is invoked, thus
> > causing
> > the reading thread to throw an IOException and then terminating the
> > readingloop (decision 2). This seemed to work OK, until I had a client
> > that sent me
> > a single message and then closed the TCP connection quickly (hit and run).
> > This caused my former mechanism to close the InputStream before the new
> > thread had a chance to read the message and decode it.
> >
> > OK, I hope all this clear.
> >
> > Can anyone tell me what I did wrong and how I should solve this?
> >
> > Thanks,
> >
> > Zohar.
> >
> >
>
>

Reply via email to