「转」关于攻坚性项目的一些建议

攻坚性项目,遇到的同学不一定很多,但一旦遇到都会是很棘手的问题,一般都伴随着巨大的压力,往往有种不成功便成仁的悲壮。
1

前几天,星球里也有同学分享了一个类似的项目,其中遇到了类似的问题。

我想起2017年的时候,自己也做过一个类似的项目,是一个对外的大数据分析系统,那个项目对于我来说,也算是个攻坚性项目了。

在此之前,我做过存储系统,当时接手这个项目的时候,以为自己可以很容易搞定,存储嘛,总有很多东西相同的,但后来才发现事情比自己想象的要复杂的多。

因为不单需要考虑存储选型,考虑SQL解析,数据计算,数据可视化,查询交互转SQL语句等事情,还要考虑上报链路的稳定性,可靠性等,其实是个很复杂的系统。

当时我们的团队里面没人有相关的经验,我leader 也以为我本身做过存储,应该不是很大的问题。对于这个系统的期待也比较高,对时间周期,项目质量都有一定的要求,我当时也傻,就这么接了下来。

然后我花了一周多时间去做调研,才发现实际情况比我预想的要复杂的多。这个时候,我开始意识到,如果按着原计划走,一定会挂,一定完成不了任务。

所以我就在思索怎么去做这个事情。我意识到,这个项目本身的复杂度要远远高过原先的预估,远远高过我的判断和我leader 的判断。

我自己由于进行了调研,已经意识到系统的复杂性,但我的leader 没有意识到,并且他坚信这个事情不是很复杂,按他的说法,如果我搞不定,他就准备找其他人搞。

这对于我而言,是很棘手的事情。如果我直接跑过去跟leader说这个很难 ,要更多的时间和更多的人力,势必引起争执,而且当时的我也没有很好的办法可以证明这个系统会有多复杂,只是从直觉来判断,比预想要复杂的多。

我只能按原计划正常地推进这个事情,拉上我团队的同学一起进行系统调研和系统选型。

我很关注实际遇到的困难和对应的解决方案。每当有新的进展或新的困难出现的时候,我都会第一时间找到我的leader, 跟他汇报目前的进展和遇到的困难,并且详细描述问题是什么,我们准备的解决方案是什么。

说实话,当时对于不少的难点,我们心里也没底。比如当时做系统选型,有不少的开源系统,各有优劣,而由于产品本身没有上线,我们对未来的需求也不能够准确把握,纠结于不知道应该选择哪个系统,才可以保证扩展性和性能等指标。

这个过程中,我不断地跟我 leader 沟通。当然不是跑过去跟他说 “老大,我们遇到这个困难了,不知道怎么解决,你看看怎么办?” 如果是这样,估计他很快就换人了,他会觉得你是一个问题制造者,不是解决问题的人。

我的做法是跟他汇报目前的进展,遇到的问题,并且详细描述问题的细节,最后给我们的解决方案。有时候没有解决方案,就给出后续执行的一些想法,比如说找某某某专家请教,比如说去哪里找哪些资料来佐证各种猜想等。

在这个过程中,我leader 也真实地感觉到了这里的困难和实际系统的复杂性,他自己的预期也在不断的调整。

最后,虽然我们的项目没有取得预想的成功,但我们那次的考核还是不错的,而且还给我leader 留下了不错的印象。他觉得我的技术能力还不错,能在一个陌生的领域一步步地探索,一步步地给出解决方案。
2

后来我去总结这个项目,我发现这类项目,需要关注两个方面:一个是项目本身,一个是人。

一般性项目,大家都很熟悉,给出的时间预估,人力预估,困难度预估都是比较准确的,只要定期地汇报项目进展就行。

但攻坚性项目就不一样了。即然是攻坚性项目,那肯定是团队不熟悉的领域,团队里面肯定也没有擅长这方面的专家,要不就不需要攻坚了。

这个时候,大家对于系统,对于项目的预估大概率是不准确的。技术人员都会过于自信于自身的能力,对一个陌生的方向,总是会过于轻率地给出自己的预估,觉得没有那么难,就像现在很多同学看待机器学习这个领域一样。

这个时候,人就是特别关键地一环了,特别是你的上级或者是关注这个项目的其它领导,一定要及时地控制好他们的预期,要及时地调整好他们的预期。

攻坚性项目,作为项目执行人的你,肯定也是边走边看的。

你没办法一开始就给出一个完整的项目路径,完整的项目预估。

自己的认识和对系统的预估也是随时在发生变化,随时在调整的,所以你也要随时地跟项目相关人同步进展,同步遇到的困难,并且学会控制他们的预期,降低他们的预期。

实际汇报地时候,不要做抱怨者,也不要做问题制造者,没有人会喜欢的。

我觉得比较好的汇报方式是: 当前的进展,遇到的困难,对于困难的解决方案或自己的想法,需要给予的资源支持等。

你要成为发现问题并解决问题的人,而不是发现问题,制造问题的人。

大家如果有遇到类似的攻坚性项目,记得一定不要闷头苦干,一定要保持跟项目相关人,特别是自己leader的沟通。

工作的结果其实有两部分:一个是实际的产出,一个是考核的结果。说句政治不正确的话,项目产出是属于公司的,考核才是你自己的,所以大家要特别关注这个问题。
以上是自己的一个项目经历,给大家描述了当时的一些情况,也给大家分享了那个项目给我的启发和收获,希望能给大家带来一些帮助。

「转」技术知识掌握的三个层次

前几天看到一个博文,里面说到了技术知识掌握的三个层次。我觉得划分的挺好,而且跟我自身的理解也很一致,所以就想按着这个划分,来写写自己的一些理解了。
1. 第一层次 what

what — what is it ?

这是最基础的层次,如果这个层次都达不到,那做技术工作几乎是无法胜任的。

顾名思义,在这个层次,你需要了解一个具体的技术是什么。

对于语言来说,是一个语言的基础语法。比如赋值语句,循环语句,变量的定义,类的定义,相较其它语言的一些独特性等。

对于基础知识来说,比如操作系统里面,线程,进程的概念,锁的概念;比如数据库里面,数据库表的定义,视图的定义,主键索引,辅助索引等。

对于一个框架来说,比如框架由哪些部分组成,能够提供哪些功能,有哪些API,有哪些类。一些常用的API或类适用于什么场景,需要怎么样的配置和传入怎样的参数等。简单来说,就是要会使用这个框架。

当然,一个框架有很多功能,不一定要全部掌握,但基础的,常用的,还是要会的。语言也是一样,对于很生僻,几乎不怎么用的,没掌握问题也不大,但基础的,常用的,就一定要掌握了。

以上都是特定领域技术知识的一些基础概念,掌握这些是达到第一层次的要求。

按照这个标准来说,大部分的程序员,都还处在第一层次,还在第一层次挣扎。

达到这个层次,做一个一般的程序员应该是没大问题的了,去面试,去到一般的公司,问题也不大。

很多同学在工作一段时间后,达到了这个层次天花板,然后就觉得自己没有提升了,也不知道怎么提升。这个时候,你需要做的不是转换方向或者寻求其他,而是应该开始考虑进阶第二层次了。
2. 第二层次 how

how it works !

顾名思义,它是怎么工作的。

比如 Java ,你写完一段Java 代码后,编译器会解析你的代码,将其转换成为字节码,然后虚拟机会装载字节码,并开始执行起来。

这里,你需要知道虚拟机是怎么运作的,怎么装载字节码,怎么分配内存,怎么回收内存等。

再比如 C/C++ , 你需要了解变量的内存是怎么分配的,内存是怎么布局的,指针在语言的实现层面是怎么一回事。

对于操作系统,数据库就更重要了。

在第一层次,你知晓了线程,进程的概念,也会用程序去fork 线程和进程。在第二层次,你需要知道线程,进程在操作系统里面是怎么一回事,是怎么工作的,用操作系统提供的观察工具来观察会有怎样一种表现,比如进程的调度,锁的竞争,CPU的消耗,等等。

第二层次是一个很宽泛的层次,细致来看,可以再分解出很多子层次。

比如,对于一门语言,框架,底层系统的运行机制的了解,细分下来,可以细分出很多不同的小层次。有人可能只是从原理上了解;有人可以深入到源代码的层级;有人除了源代码还可以根据运行表现推导出具体的实现。

我觉得能够从第一层次进阶到第二层次,一个人的技术生涯就可以被极大地延长,比如说,技术可以做到 40岁甚至 50岁。

所以在第一层次的同学,一定要想办法进阶到第二层次。
第三层次 Why

Why — Why is it like that 。

如果能到这个层次,我觉得对特定技术知识的掌握是到了一个很高的层次了。

举了个例子,语言的设计。一开始的时候有C语言,后面为什么发明了C++,有了C++之后,为啥有要来一个 Java ? 这是个可以深入思考的问题。

C++ 设计者甚至专门写了一本书来阐述背后设计的思考 :《C++语言的设计和演化》。 如果你能看懂并理解里面的内容,估计对程序设计语言的理解会深入很多。

对于操作系统,数据库,也是一样的道理。 你会去思考,为啥需要引入进程,引入线程的概念,他们是为了解决什么问题,如果不这么设计,会有更好的设计方法吗?

对于语言的各种框架,也可以进行这种思考,甚至可以拿同个领域不同的框架来进行对比分析。

当你可以站在设计者的层面去看待一个语言,一个框架,底层系统的时候,你的理解绝对是要超越很多人的,而且对这部分知识的掌握也要超过很多人。
最后

以上就是我理解的技术知识掌握的三个层次。这个划分不是什么官方标准,而是我个人经验的一个总结。这个划分,我觉得还是比较符合实际情况的,对于一些同学应该会有实际参考的意义,至少可以对比下自己对知识掌握的一个程度,也可以知道后面要往什么层次去进阶。

[心得&想法]关于技术驱动

抓大放小:

把重要事情做到极致(这个比较通用,无论是技术驱动还是管理或是做产品做增长都适用)

很多时候我们没有做成一件事,不是我们没能力,而是想做的事情太多了,这样就会哪件都做不好。所以要找到关键核心,把它做深做透,才能“四两拨千斤”。

互动:

多和产品、运营、服务等需求方打交道,深入的去了解和理解他们的深层次的诉求,很多时候还需要自己作为体验官去多多的体验自己的产品特别是类似竞争对手或者队友的产品,找出技术类可以提升的点来推动我们自己产品的提升。

信任:

当今社会信任是最有价值的东西了,但是信任也是最难建立和最容易丢掉的东西,作为技术首先你的技术能力要得到业务方的认可,你的全身心的投入要让业务方了解,你的各种困难也好、挑战也罢、发生的各种问题等等都需要让业务方知晓,不要隐瞒;你通过这一系列的努力才有可能赢得业务方的信任,有了信任才能谈技术驱动。

具体:

比如说你用了某某技术能怎么怎么拉新,怎么怎么提升转化,都没有用,要看具体的数据说话。你说商品页面打开速度提升了多少多少,用户499的数量降低了多少多少,也没有用,业务不了解也不是具体,你要用业务听得懂的话去描述。说到底,具体就是能够帮助用户解决具体的问题。能够解决问题的技术才是好技术。

扫码关注 增长知行 公众号

宝贝住院的第五天

早上起来状态还可以,但还是很疲惫,因为睡的不是很好。现在抗生素管理的很严格,所以医院只能给开两天的量,今天就只能自己弄药吃了。早上吃过饭之后,我就骑个小蓝单车去找药店买药去了,去了好几家附近的药店,都说必须得拿医生处方才能买,可是本来就是因为这边医院没法开才出去买的啊,而且这边西院区周末就没有门诊,也没法挂号,我的社保卡也没带,还真是个郁闷的事情。抗生素管理严格本来是好事,可是不分情况的限制就有点令人哭笑不得了,总得分个严重等级再限制不是。没办法还得继续找,发现附近有个社区医院,直接挂号去买应该没问题吧,结果进去一看满满的大爷大妈,也没看到有挂号的地方,遂放弃。出来看到边上有个小药店,进去问有头孢么,结果人家根本没说处方的事儿,身份证都没登记一下,懵懵的就买了三盒。本来还想着不行让岳母从家那边给送过来呢😁,美美的继续骑着那辆小蓝车回医院了。

虽然好了一点,但是宝贝的腰还是很疼,跑过去问护士能不能用云南白药气雾剂这种的止疼,护士说这个可以用,但是应该不管用😓。让他们给用药也是不太现实的,毕竟消炎药都得我们自备了。后面宝贝感觉有点要头疼的意思,问医生可不可以吃这个,医生说平时吃的现在吃也没问题,吃了之后不光头疼好了,腰疼也缓解了不少,加上昨晚折腾的很累,很快睡着了,这一觉睡的挺不错,一直睡到了下午两点多,我也弄了几个椅子边上跟着凑了一下热闹😁。睡了这一觉状态好了不少,买饭吃,加溜达。一天就这么重复着,饭宝贝也吃不了多少,结果剩下的都让我吃了,感觉这么下去都要长胖了😓。

这两天宝贝说的最多的就是下辈子再也不想做女人了,是啊,太遭罪了这。然后我就说你开始不是还有想法二胎这那的么,“不要不要,肯定不要了,想都不想”,咱别好了伤疤忘了疼啊。“明天是520耶”,“是啊,只能病房里过了,也没法给你买好东西”,“挺好,咱们这才是真爱不是”,“……”。聊着聊着床上躺着一会,看着又眼神迷离了,没多会就又睡着了,真是太累了,太伤元气了。握着宝贝的手,看着真是心疼,咱出院之后好好养着哈,再不来这了。

明天就是5.20了,咱天天都是520。

宝贝住院的第四天

早上过来医院,看着宝贝状态还算不错,结果听说昨晚实际折腾了一宿,麻醉药过敏症状,吐的很厉害,后面血压也低的不行。宝贝说感觉自己就要过去了,因为是全麻,后面也不能给睡眠的药物什么的,只能生生的挺过来,听的我这个后怕。岳母也是基本一宿没睡,忙前忙后,看药的进度,按摩手脚腰啊什么的,吊瓶打到了凌晨三点才完事。不过总算是平安过来了,领着医院里走了两圈,过去超市买了水啊橙汁什么的,大夫说要鲜榨的橙汁,可以补充钾元素,现在状况会比较好,但是时间有点早,很多都没开门。

都弄好准备去上班,十点还有面试,接到宝贝电话,说买几个橙子也可以,另外给妈买点吃的。这时候QQ上和教育那边说有错误……这个着急忙慌,连跑带颠儿的买完橙子和鲍师傅的蛋糕送上去,也来不及打招呼就打车往公司走,路上又堵车,十点肯定是来不及了,不过也就不那么着急了。想想刚刚自己着急,走的时候表情也不太好,还带着点被遛的小怨气,感觉好不应该。宝贝这都生病成这样,工作的事情再重要也是为了家里生活的更好不是,想想昨天刚刚看了文章说happy wife,happy life。主动和宝贝发短信解释了一下,结果宝贝根本没注意,嘿嘿,好吧,但是happy wife,happy life这个还是要努力去做滴

昨天请假了一天,公司一天也是各种需要处理的事情。本来打算周六再由我来接班,可是昨天岳母已经熬了一宿了,加上家里岳父和贝贝也还是岳母给做饭比较好,所以今天临时接班,只能提前下班去医院,本来要有活动发版什么的,VPN也没装成功,只能让伙伴们辛苦帮着顶一下了,还是那句话,工作再重要也不如家人重要,工作的好是为了给家庭锦上添花的,这种时候必须要让位。

打的车直接把岳母送地铁站,顺利接班。宝贝总体上还是挺顺利的,身上的管子也都拔掉了,也排气了,所以我抓紧过去给她买饭,两天没吃饭,虽然打了葡萄糖,但是感觉也要饿晕了。喝了粥,都挺好的,就是腰疼肚子疼,还有血,可是问了大夫和护士,都说是正常现象。以为后面就会原来越缓解呗,哪想到腰疼的越来越厉害,躺一会就疼醒。各种办法都试了,按摩也只是当时管事儿一下下。后面网上查说热敷比较管用,用了一下确实还可以,热敷完可以睡个2、3个小时,热敷了几次可算把这一宿熬过去了。

啊,宝贝你一定要快快好起来啊。

宝贝住院的第三天

今天晚上岳母在医院陪护,哄熊儿子睡觉的任务就只能落在我身上了,好在儿子还算比较给力,虽然磨磨唧唧了20几分钟,但还算是给面子,既没哭也没闹,现在呼呼睡了,真的是大了,所以我又上来继续了,争取形成习惯😆。

今天是宝贝住院的第三天——手术日,其实负责我们的医生有提过一嘴,说应该是中午做。但是我们一直没确认,问了护士站还有隔壁床的病友,说一般第一场手术8点多就会做。安全起见,还是一大早和岳母打车过来医院了,因为昨晚下雨了,今天的天气还是挺凉爽的,希望一切顺利。

结果到了医院开始了漫长的等待,开始说可能得到十一点,因为今天本来就没有安排妇科的手术,都是眼科、肛肠科的一大堆,我们只能等着有手术室空下来才能做。结果一直等到中午十二点多还是没动静。宝贝实在忍不了要睡了,刚睡着说准备要开始做手术了😓。

换了手术服下楼,宝贝脸蛋红红的,能看出来非常紧张。推床的小哥哥说着不算什么大手术,预计到三点就能完事,不过一般两点多就差不都了,稍微缓解了一下紧张气氛,然后就这么进了手术室了,进去之后才想起来都没给宝贝一个拥抱,只说了句加油,自己也是非常紧张啊。

一点钟手术准时开始了,时间一分一秒的过去,没有消息就是最好的消息,医生一直也米有出来找,证明手术过程还是很顺利的,自己一直这么给自己心理暗示来缓解压力。两点、两点半、三点……还是没有动静,自己心里有点打鼓了。边上做眼睛和肛肠手术的人一波又一波的进去、出来、出来、进去。心里这个着急啊。突然医生喊宝卡家属,啊!啊!啊!出什么问题了么,我赶紧跑过去。原来是肌瘤拿出来了,放到一个医用小铁盘里给家属看,真的是好多啊,因为微创,都被切成细条拿出来的,医生比划了一下说得有这么大个,你们这个给养的也太好了,😓我们可不想养。问了一下说手术一切顺利,赶紧拿出手机拍照,心也放到肚子里了。果然过了一会指示灯就显示手术已完成,但是要继续留在手术室恢复。

我和岳母也没多想,就继续等着,可是10分钟、20分钟、30分钟……就这么过去了,我这又不安起来。抓到一个接送病床的大哥问了一下,说你们这个手术时间长,恢复的时间也长,等着吧,估计得一个小时。好吧,继续等,还好没到一个小时,4点16分的时候终于推出来了,可是还带着氧气罩,看着宝贝憔悴的样子,感觉眼泪开始在眼圈转了。

还好宝贝很坚强,说我没事,真的好感激亲爱的你平平安安的出来了。接着就是从手术的床转移到病房的床,费了好大劲,终于弄回来理顺了,吸上氧,打上吊瓶,不得不说这个过程太不人性化了,身上插着好几个管子还得这么折腾移动。血氧有点低,血压也很高,身上冷。过了一小会,医生过来探视,虽然很难受,又头晕,宝贝还不忘感谢了医生,实在让我佩服你的坚强。医嘱交代了一下,说氧气要吸一晚上比较保险什么的,因为血压平时就有些高,所以医生建议等平稳下来看看再说,实在不行就要给降压的药。宝贝还是很给力的,过了一阵血压平稳下来了,身体也不冷了,不过由于头2个小时是不能睡的,所以虽然很困,但一有要睡的苗头就被大家轮流叫醒。终于坚持了两个小时,沉沉的睡了。

感谢我亲爱的宝贝,感谢医生护士,感谢岳母,感谢同屋的两个大姐,感谢以果果妈为代表的关心着你的好朋友们。宝贝你要快快好起来哦,(๑•̀ㅂ•́)و✧加油

宝贝住院的第二天

今天宝贝住院第二天了,继续昨天的流水账。下午打车过去医院,公司一堆事儿,所以只请了两个小时的假。因为雨没怎么下来,很闷热,到了医院,两边床的病人都已经做完手术了,很虚弱的躺在床上,虽然宝贝还是时刻挂着笑容,但是能明显感觉出来她有些不安,早上的B超还发现了有点点胆囊息肉,虽然我一直在开导她早发现更好复查和预防,但还是增加了一些紧张的感觉。

清理肠道的药需要配着好几瓶的水一起吃下去,我也喝了点尝尝,有点咸咸的,宝矿力水特浓缩了的味道。但是宝贝比较不喜欢这个味道,可是还要全都吃掉,真是难为她了。不过为了明天手术之后能够顺利排气,也是没有办法。一边聊着一边观察和学习着边上患者遇到的各种可能的问题。4点的时候宝贝吃了饭锅巴配海苔,这个算是我不怎么感冒韩餐之一了吧,不过后面吃了不少海苔,感觉还是不错的。其实现在吃的这些也需要排出去,但还是先解馋再说吧,中午这家伙也专门去吃了呷哺呷哺,哈哈,小吃货。

后面医生过来了,要检查一下边上的患者什么的,我也就不方便继续在这,加上病房里人多还是挺热的,就打算走了,宝贝下来送我(其实主要是馋咖啡了😓),挎着我的胳膊,这种撒娇的时候还是很少的。看着她穿着肥大的病号服,可爱又滑稽的样子,突然好心疼,明天手术一定要顺顺利利的啊,加油。

一楼大厅还是很凉快的,宝贝说咱俩这样腻歪的样子是不是让人觉得你是过来看小三啊,我说哪有我这么屌丝样的大款啊,哈哈。两个人就这么在椅子上坐着,感觉这种时候也不是很多,有点约会的感觉,只不过不应该在医院这种地方。当然也没忘记拍照,还来了个镜面反射朦胧照。

叫的车过来了,就这么依依不舍的走了。回去继续各种忙,晚上到家都快11点了。宝贝那边也排的差不多了,希望能睡个稍微安稳点的觉,🙏明天手术一切顺利,加油。

宝贝住院的第一天

博客一晃居然两年多没有更新过了,一转眼和宝贝已经结婚快7个年头了,俗话说“七年之痒”,但是在我们身上却没有发生。相反的,我们之间除了继续保持这恋人和朋友的关系之外,还多了更多更多的亲情,甚至比父母子女更亲的那种。我相信我们也会一直这样下去,越来越好。

今天是宝贝住院的第一天,本来没什么大问题的子宫肌瘤今年长得速度有点快,还是手术去掉比较好。早上一起牵着手走在去地铁的小路,拖了好久的路还在修着,灰尘很大,不过感觉今年一定会修好了。有了车之后宝贝好久没坐地铁了,一起坐地铁的感觉也挺好的,尝试用扫手机二维码进站。到了望京,一起骑着共享单车,陪着我家大宝贝去果蔬好买水果和面包,去来故乡买了点零食和咖啡。骑在后面给她拍照,一切都是这么的安静和惬意(风把衣服吹鼓起来了,就拍了这一张,拍的不好宝贝不要打我啊,哈哈)。

从来故乡打车过去医院,两人左一口右一口的喝着咖啡,很快就到了,西区这边人是真的少,安静的不得了,感觉很不错,结果住院先要建大病案,然后得下午一点半以后才能建,真是无语啊,设计的这么不合理,看来人少也是把双刃剑。

只能等着了,宝贝不想吃饭,我点了个吉祥混沌,就这么耗到一点半,终于办完了住院手续。上楼的时候宝贝突然有点忧虑的看着我,我摸摸她的头,你紧张我也紧张啊。

护士站办理完了就去找大夫,吴大夫给宝贝又做了一下检查,然后跟我们讲各种手术的风险和输血的风险,因为肌瘤比较大,位置也不是特别好,所以听着真的是很吓人的。然后在受托人处签字。虽然知道这上面写的很多都是最坏情况下才会发生的,但是看的我还是肝颤。签字的时候夫妻关系上来就写了个父,真的是很紧张,同时也感觉责任的重大。感谢宝贝把自己的安危就这么托付给我。虽然块头比你大很多,但是很多时候真的是没有你坚强呢,比如从我妈这边遗传了晕血😓。为了咱们儿子你已经开刀过一次了,这次是第二次,医生也说了手术的次数越多就越容易出现其他问题,所以咱做完这次手术以后都要好好的啊。

好久没写文章了,下班晚了估计你已经睡了,感觉写了一篇流水账,聊胜于无吧。你老说我周末的时候写周报可以写那么多,写的那么深刻,啥时候给你写点东西,就从今天开始吧,你要好好加油哦,我和儿子会做你的坚实后盾。

swoole学习:多端口监听、热重启以及Timer进阶等

最近在用swoole做群聊,确实是非常好用,但是使用过程中还是遇到了不少问题如下:

1、后台管理问题

2、热重启问题

未完待续。。。

环境说明: 系统:Ubuntu14.04 (安装教程包括CentOS6.5)

PHP版本:PHP-5.5.10
swoole版本:1.7.7-stable

Github链接:https://github.com/LinkedDestiny/swoole-doc


1.多端口监听

在实际运用场景中,服务器可能需要监听不同host下的不同端口。比如,一个应用服务器,可能需要监听外网的服务端口,同时也需要监听内网的管理端口。在Swoole中,可以轻松的实现这样的功能。 Swoole提供了addlistener函数用于给服务器添加一个需要监听的host及port,并指定对应的Socket类型(TCP,UDP,Unix Socket以及对应的IPv4和IPv6版本)。 代码如下:

$serv = new swoole_server("192.168.1.1", 9501); // 监听外网的9501端口
$serv->addlistener("127.0.0.1", 9502 , SWOOLE_TCP); // 监听本地的9502端口
$serv->start(); // addlistener必须在start前调用

继续阅读