最近用 c++ 基于 libuv 造了个异步框架的轮子,废话不多说。
源码在此: https://github.com/Masutangu/SAF
同时写了篇文章聊了下异步框架设计的思想和实现:《简单异步应用框架的实现》
c++ 停留在写业务逻辑的水平,希望得到 c++高手的意见。另外 libuv 是 c 库,和 c++ 结合起来代码写的有点绕(主要是回调不好传),大家多多提点意见,欢迎交流~
|      1KingHL      2016-09-01 11:12:09 +08:00 点个赞,支持。 | 
|  |      2watzds      2016-09-01 11:35:37 +08:00 赞 | 
|      3mason961125      2016-09-01 12:25:08 +08:00 楼主用的 Clion ? | 
|  |      4Masutangu OP @mason961125 是的 怎么看出来的.. | 
|      5mason961125      2016-09-01 18:12:17 +08:00 @Masutangu 开头注释的风格 | 
|  |      6Masutangu OP @mason961125 老司机..哈哈 | 
|      7mason961125      2016-09-01 20:57:16 +08:00 @Masutangu 为什么没考虑用 libevent 或者 libev 呢? | 
|      8jerseyjerk      2016-09-01 21:01:26 +08:00 via Android 点赞。几个小问题:支持可变长度消息吗?支持读 /写超时吗?可以 disable nagle 吗(低延迟场景中常用)?另外我看了一下 buffer.cpp 的 append 方法,这个方法只 reallocate 两倍,如果 Len 超过两倍,那 memcpy 会 overrun memory 的吧?以上之言如有错误请轻喷。 | 
|  |      9Masutangu OP @jerseyjerk 消息的打解包由业务来实现,所以消息长度是由业务来定制的。读写超时后续我补充上。 disable nagle 的话,我得看看 libuv 是否有提供选项支持(之前看文档没有看到过), append 方法 bug ,粗心了,我 fix 下。谢谢提出这么多问题哈哈 | 
|  |      10Masutangu OP @mason961125 因为最近想看看 libuv 的代码 所以先用用熟悉下~ | 
|      11macrosea      2016-09-02 13:57:14 +08:00 react-cpp 用 libev 封装的异步框架 , 非常不错, C++社区活跃了, C++才能再现辉煌 https://github.com/CopernicaMarketingSoftware/REACT-CPP | 
|  |      12matthewgao      2016-09-02 16:10:42 +08:00 似乎不支持状态间消息同步? | 
|  |      14Masutangu OP @matthewgao 状态间消息同步是指?业务一开始创建的消息对象会在各个状态间透传 | 
|  |      15matthewgao      2016-09-02 22:42:36 +08:00 @Masutangu 我的意思是,比如 state2 的运行依赖于 state1 返回的数据 | 
|  |      16Masutangu OP @matthewgao 是的,一开始创建的消息对象,其指针会传入每个 state 中,所以可以通过消息对象来传递状态间依赖的数据 | 
|  |      17Masutangu OP @matthewgao 估计这块我解释得不够清楚,等周末我更新下博客,补充几个图例 | 
|  |      18kingddc314      2016-09-03 08:31:50 +08:00 c++的异步应该支持 Lambda | 
|  |      19Masutangu OP @kingddc314 是指框架提供的接口支持么? |