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

大家好,我发布了一个开源项目,叫 Magician,是一个网络编程包。

  •  
  •   Joker123456789 · 2021-07-11 22:04:31 +08:00 · 2529 次点击
    这是一个创建于 1230 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,我又回来了。

    之前匆匆忙忙发布了第一个版本,所以问题较多,再加上本人个人能力有所欠缺 所以出现了一个重大的设计缺陷,在部分兄弟的指导下 我修复了这个缺陷,并对代码的健壮性做了大量的改进。 在此,我再一次对你们表示感谢。

    废话不多说,直接上项目吧

    本次的升级主要集中在两个点,其实早就修复了,只是现在才敢来这发帖子,上次被喷出阴影了,哈哈哈哈。

    1. 修复了之前把 tcp 和上层协议揉在一起的设计缺陷,对项目进行了重构
    2. 支持 TCP 的上层协议扩展,也就是说支持 自定义协议了。

    修复之后的整体架构

    avatar

    TFB 的测试结果

    avatar

    官网地址:http://magician-io.com

    视频演示:https://www.bilibili.com/video/BV15V411W7Km/


    最后我再啰嗦几句吧

    也许会有人觉得,我把自己的东西分享出来企图让更多的人知道,就是属于一种推广行为,所以非常的反感这种帖子。

    但我觉得,在技术社区 分享开源项目,不能算是一种罪过吧? 这不就是很正常的一种,程序员之间的互相分享和交流吗?? 你们也可以拿自己的作品给我看啊。 不能因为我分享的是自己写的东西 就成了过街老鼠吧?

    作为技术人员,看到技术类的开源项目,第一反应是“打死他”,而不是“我看看”,我觉得本身就不是一种正常的心理。

    其实真的是一件很简单的事

    我作为程序员,在程序员的圈子里分享一下自己的开源项目,仅此而已。不用脑补太多东西。我不信有人会觉得 程序员之间不该互相分享东西,不该交流,我真不信有这样的人。

    我可以真诚的接收友善的交流

    如果您看了我的项目后,觉得不错 那么我会很开心的,如果觉得有瑕疵 我也欢迎你 有理有据的提出来,我是很乐意的跟你交流的。 [之前被人说了,我立马重构了就是最好的证明,我并非油盐不进之人]

    但是 要记得 [有理有据,保持基本的礼貌哦]

    再次感谢

    再次感谢这个平台,以及愿意花时间了解本项目的兄弟,非常感谢你们。

    http://magician-io.com

    13 条回复    2021-07-23 23:01:53 +08:00
    Jirajine
        1
    Jirajine  
       2021-07-11 23:15:36 +08:00 via Android
    你的协议分层看起来还是有点问题,createTCPServer().handler("/",...)这是 TCP 还是 HTTP ?
    以及 2021 年了居然还有不支持 HTTPS 的网站,zerossl.com 赶紧上个证书吧。
    soulzz
        2
    soulzz  
       2021-07-12 08:41:35 +08:00
    自定义分包器没有的吗?
    Dragonphy
        3
    Dragonphy  
       2021-07-12 09:09:22 +08:00
    网站弄个 https,网页不想做找个通用模板套一套,其他还好,这二维码图片显示太糟糕了
    Joker123456789
        4
    Joker123456789  
    OP
       2021-07-12 09:40:24 +08:00 via iPhone
    @Jirajine 这个是 tcp,不过默认使用的是 http 解码器。

    https,是有这个打算,但感觉还不到时候,因为现在的线上环境基本都会用 nginx 转发,ssl 可以配在 nginx 里。

    现阶段我主要还是想 进一步的优化性能 和现有的功能。 路得一步一步走。 后面会有加上去的, 非常感谢您的建议。
    Joker123456789
        5
    Joker123456789  
    OP
       2021-07-12 10:55:13 +08:00 via iPhone
    @Dragonphy 非常感谢你的建议, 方便透露下 二维码是什么问题吗? 太紧凑? 太小? 太模糊? 还是其他什么问题?

    还有就是 您是在什么屏幕下 浏览的这个网页。
    Joker123456789
        6
    Joker123456789  
    OP
       2021-07-12 10:57:28 +08:00 via iPhone
    @soulzz 目前还没有,都是通过 报文里的 长度属性 来分包的。 后面我再接着优化吧。
    danc
        7
    danc  
       2021-07-12 11:43:15 +08:00
    你既然拿出来给别人看,就做好被喷的准备呗,别玻璃心,别给大家讲道理。
    不过大概看了下,功能还是比较简陋。
    Joker123456789
        8
    Joker123456789  
    OP
       2021-07-12 11:51:23 +08:00 via iPhone   ❤️ 1
    @danc 为什么要做好被喷的准备? 你们是受害者吗? 跟玻璃心又有啥关系?

    如果你说的这个 喷,指的是 有理有据的吐槽项目缺点,那就算你说的对吧。我也乐意接受这种吐槽。

    然后关于功能简陋的问题,这个项目的定位本身就是 介于原生 nio 和 应用层之间的一个东西,又不是 spring 那种完善庞大的框架, 所以简陋反而是对的。 而且我不是还提供了其他组件嘛。
    danc
        9
    danc  
       2021-07-12 12:32:09 +08:00
    @Joker123456789 大佬又开始讲道理了
    mightofcode
        10
    mightofcode  
       2021-07-12 16:02:52 +08:00
    棒棒,支持分享
    Dragonphy
        11
    Dragonphy  
       2021-07-13 08:37:38 +08:00
    @Joker123456789 #5
    二维码图片太大了😂
    MidCoder
        12
    MidCoder  
       2021-07-21 13:44:39 +08:00
    现在这种网络层的框架太多了,如果是自己练手,比较认可,抱着学习太多去了解更多技术细节。但是如果要让更多人用,那需要回答你和现有的框架有什么差异和优势?比如 netty,mina 。
    Joker123456789
        13
    Joker123456789  
    OP
       2021-07-23 23:01:53 +08:00
    @MidCoder 用起来更方便一些。 而且只要不是照抄的,总会有些差异的,解决同一需求的产品总是不会以孤独的方式出现,比如安卓和 ios,windows 和 macos,百事和可口,KFC 和麦当劳,vue/anglurjs/react 。

    还有一点就是,我提供了官方 web 生态,开发 web 也更方便,而 netty 是一个纯粹的网络包,社区内可能有一些生态 但是官方没有。 其实我更像 vert.x

    不过 这些都比较虚啦,个人开发者 这个招牌 本身就不存在信任感,我即使说的再多也没啥用,网络包毕竟不是一个小工具,不是给大家带来方便就行的,他一般在项目中属于核心,所以选型的时候会比较谨慎。

    随缘吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2671 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:54 · PVG 19:54 · LAX 03:54 · JFK 06:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.