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

2021-07-11 22:04:31 +08:00
 Joker123456789

大家好,我又回来了。

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

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

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

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

修复之后的整体架构

TFB 的测试结果

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

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


最后我再啰嗦几句吧

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

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

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

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

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

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

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

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

再次感谢

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

http://magician-io.com

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

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

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

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

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

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

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

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

随缘吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX