netty网络编程-6.Google protobuf

2020-04-01  本文已影响0人  笨鸡

Book.proto

syntax = "proto3";
option java_outer_classname = "BookMessage";
message Book{
    int32 id = 1;
    string name = 2;
}

生成代码命令

protoc Book.proto --java_out=./

NettyServerHandler

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    BookMessage.Book book = (BookMessage.Book) msg;
    System.out.println("客户端发来的数据:" + book.getName());
}

NettyProtoBufServer

ChannelPipeline pipeline = sc.pipeline();
pipeline.addLast("decoder", new ProtobufDecoder(
                            BookMessage.Book.getDefaultInstance()));
pipeline.addLast(new NettyServerHandler());

NettyClientHandler

@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
    System.out.println("Client:" + ctx);
    BookMessage.Book book =  BookMessage.Book.newBuilder()
            .setId(1).setName("netty从入门到精通").build();
    ctx.writeAndFlush(book);
}

NettyProtoBufClient

ChannelPipeline pipeline = sc.pipeline();
pipeline.addLast("encoder", new ProtobufEncoder());
pipeline.addLast(new NettyClientHandler());
上一篇 下一篇

猜你喜欢

热点阅读