В netty можно получить второй запрос от того же tcp-клиента, пока выполняется первый запрос.
Ниже приведен пример кода, который я пробовал:
public class SomethingServerHandler extends SimpleChannelInboundHandler<Object> {
protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
String stringMessage = (String) msg;
if (log.isDebugEnabled()) {
log.debug(stringMessage);
}
ctx.fireChannelRead(msg);
String[] splitMessage = stringMessage.split("::");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if ( splitMessage.length != 2 ) {
ctx.channel().writeAndFlush(stringMessage + "\n\r");
return;
}
if ( channelRepository.get(splitMessage[0]) != null ) {
channelRepository.get(splitMessage[0]).writeAndFlush(splitMessage[1] + "\n\r");
}
}
Из командной строки: локальный порт telnet
string1
string2
Здесь на стороне сервера строка2 печатается через 10 секунд после завершения обработки строки1.Есть ли в любом случае я могу обрабатывать string2 параллельно?
Заранее благодарим за любую помощь.