@Override
		public void channelRead(ChannelHandlerContext ctx, Object msg) {
			if (!(msg instanceof Request)) {
				log.error("not a request!");
				ctx.close();
				return;
			}

			Request request = (Request) msg;
			Response response;

			if (!request.getInterfaceName().equals(metadata.getInterfaceName())) {
				log.error("Server didn't provide request service.");
				ctx.close();
				return;
			}

			if (request.getCallWay().equals("result")) {
				if ((response = handleResult(request)) != null) {
					ctx.writeAndFlush(response);
				} else {
					ctx.close();
				}

			} else if (request.getCallWay().equals("object")) {
				if ((response = handleObject(request)) != null) {
					ctx.writeAndFlush(response);
				} else {
					ctx.close();
				}
			}
		}