最近有点闲,用Netty这个异步框架写了个聊天功能,也算是对Java语言的一个回顾:
现有的例子总是使用回调去处理读写,但有时候我们确需要接受来自外界的输入,比如UI界面的消息输入,此时我们就需要提取Channel或者ChannelHandlerContext来进行消息的传输。
Client端的代码比较简单,提取Connect后的Channel直接进行write就可以写入消息:
public class NettyClient {
private String clientName = "beyondwu";
public static final int BUFFER_SIZE = 1024;
public static final int HISTORY_LIST_SIZE = 30;
private Bootstrap bootstrap;
private ChannelPipeline chanPipeline;
private Channel socketChannel;
private ClientMessageHandler msgHandler;
private List<String> historyMessage;
private List<ClientObserver> observerList;
public NettyClient() {
historyMessage = new ArrayList<String>();
observerList = new ArrayList<ClientObserver>();
}
public void clientInit()