I'm attempting to get started with MINA, and all of the examples seem to have data written to the session, rather than making use of a method that can write the same type of data over and over.
I'm trying to make use of org.apache.mina.filter.codec.demux.MessageEncoder
/ MessageDecoder
to encode
/ decode
messages, which will allow me to always perform the task in a central location instead of doing it inline in the code, like the examples do.
Let's say I have a ProtocolCodecFactory
(which extends DemuxingProtocolCodecFactory
) that has a LoginRequestEncoder
(which implements MessageEncoder<LoginRequest>
, and was added via the factory's addMessageEncoder
method). Does that mean that instead of directly calling session.write()
with the username/password data, I should instead do something like this?
LoginRequest request = new LoginRequest(username, password);
new ProtocolCodecFactory()
.getEncoder(session)
.encode(session, request, someProtocolEncoderOutput);
I'm not going to lie...MINA seems like it's supposed to simplify the networking process, and I'm sure it will when I get a handle on it, but I'm thoroughly confused right now.
-
It turns out you can simple send a request via IoSession.write(). Here is a simple example based upon my original question:
LoginRequest request = new LoginRequest(username, password); session.write(request);
From Matt Huggins
0 comments:
Post a Comment