Я хочу отправлять и получать сообщения синхронно с использованием библиотеки Apache MINA 2 . Итак, я хочу использовать следующие фрагменты кода:
// Establish connection
NioSocketConnector connector = new NioSocketConnector();
connector.setConnectTimeoutMillis(CONNECT_TIMEOUT);
connector.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new MyProtocolCodecFactory()));
connector.getFilterChain().addLast("logger", new LoggingFilter());
connector.setHandler(new ClientSessionHandler());
connector.getSessionConfig().setTcpNoDelay(true);
connector.getSessionConfig().setKeepAlive(true);
connector.getSessionConfig().setSendBufferSize(MAX_BUFFER_SIZE);
connector.getSessionConfig().setReadBufferSize(MAX_BUFFER_SIZE);
connector.getSessionConfig().setReceiveBufferSize(MAX_BUFFER_SIZE);
connector.getSessionConfig().setBothIdleTime(IDLE_TIME);
connector.getSessionConfig().setUseReadOperation(true);
try {
future = connector.connect(new InetSocketAddress(IP, PORT)).awaitUninterruptibly();
} catch (RuntimeIoException e) {
connector.dispose();
}
IoSession session = future.getSession();
session.write(withdrawal);
ReadFuture readFuture = session.read();
Object recvMessage = null;
while (recvMessage == null) {
if (!readFuture.isClosed()) {
readFuture.awaitUninterruptibly();
recvMessage = readFuture.getMessage();
}
}
Но recvMessage
- это null
. Что не так с этим кодом?
Заранее спасибо.