在Fastadmin中使用GatewayClient记录,以作参考,这里只是客户端消息推送,
实现消息服务器可以看GatewayWorker实现即时消息
目录
[Composer 安装](#Composer 安装)
[安装 GatewayClient](#安装 GatewayClient)
[在 FastAdmin 中使用](#在 FastAdmin 中使用)
Composer 安装
这种方式无需手动处理文件引入,ThinkPHP5 会自动加载类,是最规范的用法。
安装 GatewayClient
打开 FastAdmin 项目根目录,执行以下 Composer 命令:
bash
composer require workerman/gatewayclient
安装完成:

在 FastAdmin 中使用
在控制器中使用
需要先注册 消息服务器,然后有两个发送消息方法,一个点对点,一个是广播消息。
代码如下:
php
<?php
namespace app\admin\controller;
use think\Controller;
// 直接引入GatewayClient的Gateway类(Composer自动加载)
use GatewayClient\Gateway;
class Gateway extends Controller
{
// 初始化Gateway配置
public function _initialize()
{
parent::_initialize();
// 核心配置:填写你的GatewayWorker注册服务地址+端口(必填)
Gateway::$registerAddress = '127.0.0.1:1236';
}
// 示例1:给指定UID用户发送消息
public function sendToUid()
{
$uid = 1001; // 目标用户UID(根据业务调整)
$message = json_encode(['type' => 'notice', 'content' => '你好,这是FastAdmin发送的消息']);
// 调用GatewayClient核心方法发送消息
$result = Gateway::sendToUid($uid, $message);
return json([
'code' => $result ? 1 : 0,
'msg' => $result ? '消息发送成功' : '消息发送失败',
'data' => ['uid' => $uid]
]);
}
// 示例2:给所有在线用户广播消息
public function sendToAll()
{
$message = json_encode(['type' => 'broadcast', 'content' => '全体通知:系统维护时间为今晚23点']);
Gateway::sendToAll($message);
return json(['code' => 1, 'msg' => '广播消息发送成功']);
}
}
总结
这是在Fastadmin中使用GatewayClient记录,以作参考。