Erlang/Elixir 350 行实现一个简单酸酸

tt67wq · 2020年03月17日 · 最后由 willarnett 回复于 2024年08月13日 · 4100 次阅读

😎 😎 最近闲的蛋疼,手搓了一个酸酸,包括 client 和 server,总共加起来才 349 行。

  • Server
github.com/AlDanial/cloc v 1.84  T=0.01 s (809.3 files/s, 62642.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Elixir                           5             76             85            226
-------------------------------------------------------------------------------
SUM:                             5             76             85            226
-------------------------------------------------------------------------------

  • Client
github.com/AlDanial/cloc v 1.84  T=0.01 s (702.5 files/s, 31435.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Elixir                           4             36             20            123
-------------------------------------------------------------------------------
SUM:                             4             36             20            123
-------------------------------------------------------------------------------

目前加密算法现在写死了一个 aes_256_gcm。

我做了个性能测试,单个线程的连接的速度大概只能到 v2ray 的 60% ~ 70%,但是我观察了 v2ray 是请求来了再建立连接,而这个酸酸里面用 poolboy 弄了个连接池,所以在浏览网页的时候竟然意外的比 v2 还要丝滑一些,不知道是不是我的错觉🚶 💃

代码地址: gayhub

一直在想酸酸是个啥,掩盖得很出色。👍

lanzhiheng 回复

ss -> 酸酸

ssr -> 酸酸乳

单个线程 指的是什么?server 的 scheduler 设置为 1 吗?

yfractal 回复

单个连接的吞吐

你这项目的 commit,看得我.............

ShowLew 回复

扎心了?

好像现在都模拟 TLS

算算协议被破了。

之前我在 1024 看了个帖子 某监控屏幕上 居然出现了 443 端口 wss 方式都被监控出来了

我还在想这玩意是怎么检测出来的

只不过后面我一看备注是 移动端

我在想估计是华为手机系统级别出来的,

而不是通过协议拆出来的吧,要不 ssl 就不可靠了还怎么玩

jicheng1014 回复

应该是终端上报的

jicheng1014 回复

你看到的那个监控屏幕是假的。。。思科模拟器。。。

jicheng1014 回复

443 端口 wss 方式,不能说一定是 fq 流量吧

能否写个 ruby 版本的?

steve 回复

不会 ruby 啊。。。

ShowLew 回复

因为你这句话,我才去 Github 上看了一下😂

很棒!实现一个简单的酸酸服务器和客户端,而且还在性能方面有所优化,这是一个很有趣的项目。可能你的连接池的设计确实带来了一些性能上的优势,使得在浏览网页时感觉更加流畅。slope

需要 登录 后方可回复, 如果你还没有账号请 注册新账号