背景
目前参与的几个后台服务都是基于libev构建的异步网络服务框架,我们将libev进行了简单的封装形成了Reactor类,并形成了自己稳定的异步服务框架,这里 针对当前网络服务框架进行剖析,以期望未来可以轻松的使用这个框架构建任意的高并发、稳定的后台服务。
libev通过提供几个简单的接口,可以方便设置对fd的read/write等事件进行回调。定义的loop用来循环监控事件,loop可以监听的watcher都通过 ev_TYPE定义的watcher(TYPE可以为io, signal, async, timer等事件)
1 | // define a new io watcher |
1 | // bind the watcher with a io callback func |
上述的ev_init以及ev_io_set可以通过一个函数来实现
1 | // 这里的callbackfn,fd, READ事件都是用来初始化io_watcher |
上面列出的是常见原生libev接口,我们基于这些接口封装成一个易用的Reactor类
Reactor类的形成
为了易用,我们用一个Reactor.h封装了所有的watcher的实现。
– EOF –