速记:SFDC 2016 - 车轮互联 韩天峰 《PHP7+Swoole异步网络通信编程》.docxVIP

速记:SFDC 2016 - 车轮互联 韩天峰 《PHP7+Swoole异步网络通信编程》.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
会议主题:SegmentFault2016开发者大会--杭州站 会议时间:2016年12月10日 9:00 会场主持人:SegmentFault 联合创始人兼CEO 高阳 议题:《PHP7+Swoole异步网络通信编程》 讲师:车轮互联 韩天峰 韩天峰:大家好,我是韩天峰,今天给大家分享的主题是PHP7+Swoole异步网络通信编程,以前我这个主题没有7,可能就是PHP+Swoole,最近我们PHP7基本上成为现在大家主流用的一个版本,所以说现在加了7,因为7是PHP一个革命性的版本。下面是关于我的一个介绍,目前我在车轮互联这家公司担任架构师,我是比较资深的PHP程序员,到今年接近10年的PHP开发的从业经验,另外,我现在也是PHP扩放扩展开发组的成员。 下面是我的因浪微博这个程序员的鄙视链都熟悉的,C-C++-jave-c#-phthon。尤其C++的程序员,他在他们的这些程序员,有一句话我不知道大家有没有听说过,他说C++才是真正的程序,其他的都不算。所以说,其实在C++的PHP的程序员就是这样的一个角色,这就是我们程序员的鄙视链,我个人的对程序的理解是这样的,你说哪个语言好,哪个语言不好,没有到底,就是在哪个场景下面更好,另外的语言不适合某一个场景,好比说我们的工程师都有自己的工具箱,每一张语言都是自己其中的一个工具,你做一个事情的时候,你应该是从你的工具箱拿出来最适合的工具去做,而不是我就是用一个工具做任何的事情,这是不现实的。 有一句话说得非常好,最适合的语言错是最好的语言。包括上面所说的JAVA,这些语言我自己都在用,比如说,C++我们公司做密集计算还有一些偏底层的图象处理都是用C++来处理,还有数据的挖掘,还有我们的有哪些信誉好的足球投注网站引擎都是用C++做,包括JS,我们做展示面的工作都是用JS实现,我们公司做后端的业务逻辑基本上就是PHP做的。 回到我们主题今天我们给大家分享的是网络通信编程,做后端对这个概念都是比较了解的,因为我们做后端肯定是跟IO和通信打交道,我们PHP之前大家对PHP的认识都是做WEB,就是做查询外部功能就结束了,实际上,PHP也可以做WEB之外,比如说,做服务器,WEBM,还有TCP通信,甚至一些邮件服务器,微信这种后台的程序都可以做。PHP这个语言最大的特点就是他开发起来相对来说比较快捷,因为他这个语言的特性就是比较简单,所以说,他的效率是非常高的,最近我们出了PHP7,以前大家觉得PHP的性能也不是很好,实际上,在PHP7这个版本推出来之后,PHP语言的性能已经得到了极大的提升。 比如说,我们经常用的博客的程序,就是使用PHP之后,就是性能提升100倍。实际上,我们自己在线上环境对于一些PHP的程序,因为我们自己老是觉得可能PHP实现的这个程序性能不是很好,我们就是有一个想法,就是说,用C++去重新写一遍,但是我们线上的项目,做过这个事情之后发现效果没有想象的好把一个PHP的项目用C++重构之后只能得到1-2倍的性能的提升。 接下来,我们贺老实说了就是做异步,我们PHP模仿做的扩展,也是做异步,接下来我们讲讲我们到底有什么样的差别,下面这些PHP的扩展如果不熟悉PHP,或者做PHP时间比较短的朋友可能不太了解。有这么几个扩展,第一个就是stream,还有就是sockets,还有一个就是libevent,大家都听说过,这个就是对于这个库的封装,就是用于做编程的。还有一个就要event就是面向对象的API,就是使用起来比较方便,集成定时期和信号处理的功能。下面就是pcntl:多进程信号,进程管理的支持,,还有一个就是pthreads,就是做线程,线程管理,锁的支持。多线程大家没有见到过程序员这样使用。他也是具备这样的功能。 实际上,我们基于这些扩展,用PHP语言就可以实现很多TCP服务器的框架,这里面就是完全使用PHP来实现的一个异步IO的框架,这个东西完全可以理解成就是PHP版本的node.js。还有一个就phpdaemon,基于libevent实现的PHP异步server的端编程框架。这个应该是从腾讯以前朋友网拿出来的一套代码,然后做了一些改进,推出的项目。这个作者跟我是同一个部门的,我们还是比较了解的。 用PHP实现TCP服务器,这个就是现场写的代码,这个代码完全可以拿出去运行起来,就是用PHP可以使用不到15行的代码可以实现TCP的服务器和多进程的程序,它的原理比较简单,有一行代码,里面的参数0.0.0.0是它的监听IP,8000就是服务器程序监听的端口。下面主要是它的一个主要的逻辑,如果客户端发起TCP链接,就是建立一个TCP的通道就可以进行数据的收发,这里使用到PCNTL就是创建一个子进程,为什么创建一个子进程呢,如果你接受一个链接去处

文档评论(0)

159****3685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档