This method can be called multiple times with different values of size while data is being parsed.
405406407408409410411412413414415
size = buff.getInt(0); parser.fixedSizeMode(size); } else { MessageImpl received = new MessageImpl(); received.readFromWire(socket, buff, userCodecMap, systemCodecs); parser.fixedSizeMode(4); size = -1; if (received.codec() == PING_MESSAGE_CODEC) { // Just send back pong directly on connection if (sendPong) { socket.write(PONG);
401402403404405406407408409410411
Handler<Buffer> handler = new Handler<Buffer>() { int size = -1; public void handle(Buffer buff) { if (size == -1) { size = buff.getInt(0); parser.fixedSizeMode(size); } else { MessageImpl received = new MessageImpl(); received.readFromWire(socket, buff, userCodecMap, systemCodecs); parser.fixedSizeMode(4); size = -1;
411412413414415416417418419420421
Handler<Buffer> handler = new Handler<Buffer>() { int size = -1; public void handle(Buffer buff) { if (size == -1) { size = buff.getInt(0); parser.fixedSizeMode(size); } else { BaseMessage received = MessageFactory.read(buff); if (received.type() == MessageFactory.TYPE_PING) { // Send back a pong - a byte will do socket.write(PONG);
420421422423424425426427428429430
// Send back a pong - a byte will do socket.write(PONG); } else { receiveMessage(received); } parser.fixedSizeMode(4); size = -1; } } }; parser.setOutput(handler);