GatewayWorker windows版做简单聊天PHP代码

本文介绍了如何在Windows环境下利用GatewayWorker搭建基于PHP的聊天应用。GatewayWorker是基于Workerman的TCP长连接框架,适用于app推送、即时通讯等场景。文章详细讲解了GatewayWorker的工作原理和其提供的API,包括全局广播、定向推送等功能,并分享了作者在小程序项目中实现的聊天功能代码,展示了Events.php中处理消息的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GatewayWorker windows版做简单聊天PHP代码

  GatewayWorker手册https://www.kancloud.cn/walkor/gateway-worker/326105网站介绍很详细;

     GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等

     GatewayWorker使用经典的Gateway和Worker进程模型。Gateway进程负责维持客户端连接,并转发客户端的数据给BusinessWorker进程处理,BusinessWorker进程负责处理实际的业务逻辑(默认调用Events.php处理业务),并将结果推送给对应的客户端。Gateway服务和BusinessWorker服务可以分开部署在不同的服务器上,实现分布式集群。

     GatewayWorker提供非常方便的API,可以全局广播数据、可以向某个群体广播数据、也可以向某个特定客户端推送数据。配合Workerman的定时器,也可以定时推送数据。

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

因为绝大多数开发者的目标是基于Workerman开发TCP长连接应用,而长连接应用服务端有很多共同之处,例如它们有相同的进程模型以及单发、群发、广播等接口需求。所以才有了GatewayWorker框架,GatewayWorker是基于Workerman开发的一个TCP长连接框架,实现了单发、群送、广播等长连接必用的接口。GatewayWorker框架实现了Gateway Worker进程模型,天然支持分布式多服务器部署,扩容缩容非常方便,能够应对海量并发连接。可以说GatewayWorker是基于Workerman实现的一个更完善的专门用于实现TCP长连接的项目框架。介绍这么多,你也大致了解GatewayWorker是什么了,我就在我的项目小程序上使用它做了一个聊天功能,这里都是我自己写的代码;

上面简单的聊天功能,是利用GatewayWorker长连接来做。目前运行很稳定,所以拿出来分享一下。因为关于Workerman的长连接网上资料还是很少的;下面就是我的代码展示;

Events.php文件里的消息接收和推送,这里是PHP逻辑的处理地方

/**
 * 当客户端发来消息时触发
 * @param int $client_id 连接id
 * @param mixed $message 具体消息
 */
public static function onMessage($client_id, $message)
{
 
 
    $req_data = json_decode($message,true);
    if(isset($req_data['openid'])) {
 
 
        // 初始化db连接
        $mysqli = new mysqli("localhost", "*********", "*********", "paimai")
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值