Java tutorial
/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package com.lb.mysession.client; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import java.util.ArrayList; import java.util.Collection; import java.util.Formatter; import java.util.List; import java.util.Map; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; import com.lb.mysession.handler.Command; import com.lb.mysession.model.User; import com.lb.mysession.proto.ResultProto; import com.lb.mysession.proto.ResultProto.Result; import com.lb.mysession.util.ObjectUtil; import com.lb.mysession.util.StringUtil; /** * * @author libin * ? */ public class SessionClientHandler extends SimpleChannelInboundHandler<Result> { private static final Logger logger = Logger.getLogger(SessionClientHandler.class.getName()); private static final Pattern DELIM = Pattern.compile("/"); // Stateful properties private volatile Channel channel; public SessionClientHandler() { super(false); } @Override public void channelRegistered(ChannelHandlerContext ctx) throws Exception { channel = ctx.channel(); } @Override public void channelRead0(ChannelHandlerContext ctx, Result result) throws Exception { String key = result.getSessionId() + result.getToken(); //System.out.println("?result---------------"+result.getKey()+" --- "+result.getStatus()); Command cmd = ModSessionNodeConnector.commandMap.get(key); if (cmd != null) { cmd.setStatus(result.getStatus()); if (result.getValue() == null) { System.out.println("result.getValue() == null"); } cmd.setResult(ObjectUtil.ByteStringToObject(result.getValue())); cmd.countDown(); key = null; } else { System.out.println("jies-- " + key + " " + result.getToken()); } } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { logger.log(Level.WARNING, "Unexpected exception from downstream.", cause); ctx.close(); } }