美文网首页
netty网络编程-6.Google protobuf

netty网络编程-6.Google protobuf

作者: 笨鸡 | 来源:发表于2020-04-01 02:47 被阅读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());

相关文章

网友评论

      本文标题:netty网络编程-6.Google protobuf

      本文链接:https://www.haomeiwen.com/subject/tcgnuhtx.html