Java - ReadObject com nio
Em um servidor tradicional de thread de bloqueio, eu faria algo assim
class ServerSideThread {
ObjectInputStream in;
ObjectOutputStream out;
Engine engine;
public ServerSideThread(Socket socket, Engine engine) {
in = new ObjectInputStream(socket.getInputStream());
out = new ObjectOutputStream(socket.getOutputStream());
this.engine = engine;
}
publ,ic void sendMessage(Message m) {
out.writeObject(m);
}
public void run() {
while(true) {
Message m = (Message)in.readObject();
engine.queueMessage(m,this); // give the engine a message with this as a callback
}
}
}
Agora, pode-se esperar que o objeto seja bastante grande. No meu loop nio, não posso simplesmente esperar o objeto passar, todas as minhas outras conexões (com cargas de trabalho muito menores) estarão esperando por mi
Como posso ser notificado apenas de que uma conexão tem o objeto inteiro antes de informar ao meu canal de nio que está pronta?