thinkphp5.1 上手服务器消息主动推送至web客户端

1232
sosphp
管理员 2022-12-16 18:04
占位符 占位符

在开始之前,先上个最重要的链接,workerman的开发指导手册 ,这是比较完整的指导手册


也感谢workerman提供如此宝贵且详细的指导手册


1671196296607468.png


官方首页中,workerman提供了以下几个生态场景,程序猿们可以根据自己的实际需要选择对应的场景文档进行了解。

本人的业务场景主要为:消息推送(提醒)至前端用户,用户可以实时的收到提醒,故选择了GatewayWorker进行使用。


进入到GatewayWorker主页面后,首先会看到左侧的文档菜单,我认为需要重点看的,也都用箭头标注了出来,看文档要有适当的耐心。我看这几篇内容并去理解基本上花了2天的时间,需要将前后的衔接关系进行梳理,这中间花费的时间还是比较值得的。


image.png


写到这里,突然间觉得序言里的一部分内容也比较关键,虽然对开发没有实质的帮助,但是对理解GatewayWorker和Workerman的关系是有帮助的,下面我就直接粘贴文档中的内容:

GatewayWorker 与 Workerman的关系

Workerman可以看做是一个纯粹的socket类库,可以开发几乎所有的网络应用,不管是TCP的还是UDP的,长连接的还是短连接的。Workerman代码精简,功能强大,使用灵活,能够快速开发出各种网络应用。同时Workerman相比GatewayWorker也更底层,需要开发者有一定的多进程编程经验。

因为绝大多数开发者的目标是基于Workerman开发TCP长连接应用,而长连接应用服务端有很多共同之处,例如它们有相同的进程模型以及单发、群发、广播等接口需求。所以才有了GatewayWorker框架,GatewayWorker是基于Workerman开发的一个TCP长连接框架,实现了单发、群送、广播等长连接必用的接口。GatewayWorker框架实现了Gateway Worker进程模型,天然支持分布式多服务器部署,扩容缩容非常方便,能够应对海量并发连接。可以说GatewayWorker是基于Workerman实现的一个更完善的专门用于实现TCP长连接的项目框架。

用GatewayWorker还是Workerman?

如果你的项目是长连接并且需要客户端与客户端之间通讯,建议使用GatewayWorker
短连接或者不需要客户端与客户端之间通讯的项目建议使用Workerman。
GatewayWorker不支持UDP监听,所以UDP服务请选择Workerman
如果你是一个有多进程socket编程经验的人,喜欢定制自己的进程模型,可以选择Workerman。


GatewayWorker下载地址:

只包含GatewayWorker内核
https://github.com/walkor/GatewayWorker




   好,第一步,我们先来了解一下工作原理部分:

1671198479699100.png


    第二步:了解一下开发必读部分


image.png


image.png


业务代码都在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框架的结合


image.png

GatewayClient的下载链接  


安装包

GatewayClient-3.0.13.zip




具体的实现步骤:


image.png




image.png

image.png

image.png


image.png



        第五步:代码中需要注意的部分



首先,start_businessworker.php    和   start_gateway.php   和  start_register.php  这三个文件中的服务注册地址要保持完全一致,包括端口号

另外,如果想要使用GatewayClient服务,它是composer安装在thinkphp项目内的,其中的注册地址也要和上面三个文件的一致,这个比较重要,这四个文件中的变量名都叫  registerAddress


image.png


image.png

  

image.png


image.png

image.png



前端页面代买展示:

image.png


image.png








站点建设需要成本,如若您觉得对您还有帮助,感谢支持!
0.049306s