workerman源码分析之总纲

作者: 白云飞 分类: workerman源码 发布时间: 2018-02-05 18:19 阅读:

很早之前就接触了workerman,被php还能做这些事情所震撼。自己也基于workermnan做了一些产品,如开源的laychat v2.0,以及我在出售的 ichat v3.0。wokerman 是一个非常优秀的 php 的网路编程库。通过学习 workerman 的源码,可以帮助 php 程序员快速的了解网络编程,从而提升自身的认知。对网络编程感兴趣,但 c 语言能力偏弱的 phper 来说,无疑是最好的入门实例了。

不过,由于 php 文档关于 socket 部分的函数的解释非常的模糊,而且有些函数基本没有解释。这样导致的结果就是,看了workerman源码之后,感觉莫名其妙,让新手感觉无从下手。这也是我最初看workerman的时候的感受。因此,我后面硬着头皮看了 《unix环境高级编程》 和 《unix网络编程(卷一)》。当然,第二本没看完。汗啊。。。。由于我的 c 语言也是半吊子,所以很多地方理解的也不是很对。不过,我会在讲解 php 这方便的函数的时候,尽量引用这两本书中的权威解释,来解释,以追求通俗易懂,而且准确。

  还是非常的建议,喜欢网络编程的同学,认真学习 《unix环境高级编程》 和 《unix网络编程(卷一)》,真的非常的有帮助。

老套路,还是先看一下 workerman的总体架构,这样大家心里也有个数,对于后面的源码的阅读有很大的益处。一旦有很多无法理解的地方,出了代码方面的,架构方面的不理解,可以回过头来,反复的看这个图,一定会恍然大悟。

记住官方的解释

Worker是WorkerMan中最基本容器,Worker可以开启多个进程监听端口并使用特定协议通讯,类似nginx监听某个端口。每个Worker进程独立运作,采用Epoll(需要装event扩展)+非阻塞IO,每个Worker进程都能上万的客户端连接,并处理这些连接上发来的数据。主进程为了保持稳定性,只负责监控子进程,不负责接收数据也不做任何业务逻辑

好了,总纲先交代到这里。下面,我们从一个官方提供的最简单的例子,开始 《workerman源码分析》 之旅吧。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。