V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sujunjie520
V2EX  ›  Java

想问下大佬们 关于 netty 自定义消息类的问题

  •  
  •   sujunjie520 · 2021-03-25 11:07:54 +08:00 · 1487 次点击
    这是一个创建于 1340 天前的主题,其中的信息可能已经有所发展或是发生改变。
    从网上 下了个 netty demo 想修改它的自定义消息类 Message 有点懵逼 不知道怎么下手
    -----------------------------------------------------------------------------------------------
    是想在保持心跳连接的基础上 添加上传文件
    -----------------------------------------------------------------------------------------------
    心跳的 demo 发送消息
    ctx.writeAndFlush(
    Message.MessageBase.newBuilder()
    .setClientId(CLIENTID)
    .setCmd(Command.CommandType.PUSH_DATA)
    .setData("发送业务数据中。。。")
    .build()
    );
    -----------------------------------------------------------------------------------------------
    上传文件的 demo
    FileUploadFile uploadFile = new FileUploadFile();
    File file = new File("D:\\testFile\\无标题项目.aep");//
    String fileMd5 = file.getName();// 文件名
    uploadFile.setFile(file);
    uploadFile.setFile_md5(fileMd5);
    uploadFile.setStarPos(0);// 文件开始位置
    new FileUploadClient().connect(FILE_PORT, "127.0.0.1", uploadFile);
    -----------------------------------------------------------------------------------------------
    请大佬们 留下 qq 或者微信 让我咨询一下 谢谢大佬们 qaq
    5 条回复    2021-03-25 17:54:08 +08:00
    xinhochen
        1
    xinhochen  
       2021-03-25 11:13:23 +08:00
    没看到 Encoder,不好说。
    不过大体思路就是 setCmd()那里加一个 CommandType.FILE_UPLOAD,setData()里面把文件的 byte[]放进去。
    要看 Encoder 的实现来考虑是否需要添加新的 Encoder,或者在现有 Encoder 中添加新逻辑
    RedBeanIce
        2
    RedBeanIce  
       2021-03-25 11:29:52 +08:00
    看一下 netty 的官方文档,里面有示例,不知道是不是你要的,GitHub 的

    netty\example\src\main\java\io\netty\example\http\upload\HttpUploadServerHandler.java
    YzSama
        3
    YzSama  
       2021-03-25 14:28:09 +08:00
    把文件 转成 流。包装到 data 里面。cmd 定义个 文件上传的命令。
    sujunjie520
        4
    sujunjie520  
    OP
       2021-03-25 17:50:32 +08:00
    @xinhochen 问题就是那个 Encoder 里面的代码有点看不懂 总之感谢大佬了
    sujunjie520
        5
    sujunjie520  
    OP
       2021-03-25 17:54:08 +08:00
    @YzSama 我也是这个思路 qaq 问题是 cmd 就是那个消息类里的代码 看不懂 不知道咋下手
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1659 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:39 · PVG 00:39 · LAX 08:39 · JFK 11:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.