Fastadmin中使用GatewayClient

在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记录,以作参考。

相关推荐
码农老李7 小时前
openEuler2403服务器版 原生官方镜像和飞腾定制镜像
开发语言·php
审判长烧鸡10 小时前
【PHPer转Go】fmt vs log/slog
go·php
HMS工业网络12 小时前
STP、RSTP到N-Ring的演进之路
服务器·开发语言·php
qq_5434478212 小时前
Tcping测速是什么?Tcping测速核心概念解析
服务器·网络·php
Mr数据杨16 小时前
AIGC工具平台-StoryBoard故事板
人工智能·aigc·php
IronMurphy16 小时前
Redis拷打第七讲(最终章)
数据库·redis·php
marsh020617 小时前
49 openclaw故障排查:系统异常时的诊断方法
服务器·前端·青少年编程·ai·php·技术美术
暗冰ཏོ20 小时前
PHP 全栈开发学习手册:从基础到高级实战、Laravel、Redis、面试题完整版
学习·php·laravel
dog2501 天前
为何新增网络路径反而引入额外时延
服务器·网络·php