On 11/1/06, Hieu Phan Thanh <[EMAIL PROTECTED]> wrote:
Hi, > But i don't know when the result message is done. I use I don't know what you meant when saying "when the result message is done"? MINA just helps us to transfer the message. And you have to customize and handle the processing logic of the system yourself. Please give me more detail or something related. Hope I could help you guy.
That's when the message is received by client totally. for (::) { try { ConnectFuture future = connector.connect(new InetSocketAddress(host, port), handler, cfg); future.join(); session = future.getSession(); break; } catch ... { } } When i connect to the server, i send a query message. And furture.join() is return just when the connection is established. I want to ensure that i have received the request message which is sent by the server. My question is how can i do this? Now i use when received message, I set an attribute in the IoSession. IoSession.setAttribute("result", object); and in the client's process flow, i use while statement to ensure the message is received totally. while ( !IoSession.containsAttribute("result") ) ; I'm seeking a better way. Thx for advice, :)
Thanks & best regards, Hieu Phan. > -----Original Message----- > From: sishen [mailto:[EMAIL PROTECTED] > Sent: Wednesday, November 01, 2006 4:26 PM > To: mina-dev@directory.apache.org > Subject: How to get the received message object? > > public class ResultMessageHandler implements MessageHandler { > public void messageReceived(IoSession session, Object message) throws > Exception { > ResultMessage result = (ResultMessage)message; > System.out.println("Message Received: ResultMessage"); > } > } > > when i received the ResultMessage, i need to save it. > > Now i use > session.setAttribute("result", result); > And in the client, > ResultMessage result = (ResultMessage)session.getAttribute("result"); > > But i don't know when the result message is done. I use > while (!session.containsAttribute("result")) > ; > ResultMessage result = (ResultMessage)session.getAttribute("result"); > > But this has an problem, which is that when the server met an mistake, it > will block forever. I do not prefer this way. > > > I want to know whether there is a way to solve this problem. I want to > return the message the server sent to me. > > thx~