大家好,我发布了一个开源项目,叫 Magician,是一个网络编程包。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Joker123456789
V2EX    Java

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

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

    大家好,我又回来了。

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

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

    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     Solana     2540 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 06:33 PVG 14:33 LAX 23:33 JFK 02:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86