在开始之前,先上个最重要的链接,workerman的开发指导手册 ,这是比较完整的指导手册
也感谢workerman提供如此宝贵且详细的指导手册
官方首页中,workerman提供了以下几个生态场景,程序猿们可以根据自己的实际需要选择对应的场景文档进行了解。
本人的业务场景主要为:消息推送(提醒)至前端用户,用户可以实时的收到提醒,故选择了GatewayWorker进行使用。
进入到GatewayWorker主页面后,首先会看到左侧的文档菜单,我认为需要重点看的,也都用箭头标注了出来,看文档要有适当的耐心。我看这几篇内容并去理解基本上花了2天的时间,需要将前后的衔接关系进行梳理,这中间花费的时间还是比较值得的。
写到这里,突然间觉得序言里的一部分内容也比较关键,虽然对开发没有实质的帮助,但是对理解GatewayWorker和Workerman的关系是有帮助的,下面我就直接粘贴文档中的内容:
Workerman可以看做是一个纯粹的socket类库,可以开发几乎所有的网络应用,不管是TCP的还是UDP的,长连接的还是短连接的。Workerman代码精简,功能强大,使用灵活,能够快速开发出各种网络应用。同时Workerman相比GatewayWorker也更底层,需要开发者有一定的多进程编程经验。
因为绝大多数开发者的目标是基于Workerman开发TCP长连接应用,而长连接应用服务端有很多共同之处,例如它们有相同的进程模型以及单发、群发、广播等接口需求。所以才有了GatewayWorker框架,GatewayWorker是基于Workerman开发的一个TCP长连接框架,实现了单发、群送、广播等长连接必用的接口。GatewayWorker框架实现了Gateway Worker进程模型,天然支持分布式多服务器部署,扩容缩容非常方便,能够应对海量并发连接。可以说GatewayWorker是基于Workerman实现的一个更完善的专门用于实现TCP长连接的项目框架。
如果你的项目是长连接并且需要客户端与客户端之间通讯,建议使用GatewayWorker。
短连接或者不需要客户端与客户端之间通讯的项目建议使用Workerman。
GatewayWorker不支持UDP监听,所以UDP服务请选择Workerman。
如果你是一个有多进程socket编程经验的人,喜欢定制自己的进程模型,可以选择Workerman。
GatewayWorker下载地址:
只包含GatewayWorker内核
https://github.com/walkor/GatewayWorker
好,第一步,我们先来了解一下工作原理部分:
第二步:了解一下开发必读部分
业务代码都在Events.php文件内。
第三步: 启动和停止,这个主要记住一下几点就行:
php start.php start 以debug(调试)方式启动 php start.php start -d 以守护进程的方式启动 php start.php stop 停止 php start.php reload 重启 php start.php status 查看状态
第四步:最关键的一步,和Thinkphp框架的结合
安装包
具体的实现步骤:
第五步:代码中需要注意的部分
首先,start_businessworker.php 和 start_gateway.php 和 start_register.php 这三个文件中的服务注册地址要保持完全一致,包括端口号
另外,如果想要使用GatewayClient服务,它是composer安装在thinkphp项目内的,其中的注册地址也要和上面三个文件的一致,这个比较重要,这四个文件中的变量名都叫 registerAddress
前端页面代买展示:
微信扫码关注 FK 公众号