@Override
 public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
   Object message = ((MessageEvent) e).getMessage();
   if (message instanceof MappingHttpRequest) {
     MappingHttpRequest request = ((MappingHttpRequest) message);
     if (HttpMethod.GET.equals(request.getMethod())) {
       handleGet(ctx, request);
     } else if (!initialized) {
       handleInitialize(ctx, request);
     } else if (request.getMessage() instanceof HeartbeatType) {
       handleHeartbeat(request);
     } else {
       ChannelFuture writeFuture =
           ctx.getChannel()
               .write(
                   new DefaultHttpResponse(
                       request.getProtocolVersion(), HttpResponseStatus.NOT_ACCEPTABLE));
       writeFuture.addListener(ChannelFutureListener.CLOSE);
     }
   } else {
     super.messageReceived(ctx, e);
   }
 }