宝塔面板实战:从零部署Workerman WebSocket服务,打通FastAdmin后台与UniApp用户端

1. 环境准备与基础配置

在开始部署WebSocket服务之前,我们需要确保服务器环境已经准备就绪。宝塔面板作为一款强大的服务器管理工具,能够极大简化我们的配置流程。首先登录宝塔面板,进入"软件商店"安装以下必备组件:

  • PHP 7.4+:Workerman对PHP版本有要求,建议选择7.4版本
  • Nginx/Apache:根据项目需求选择Web服务器
  • MySQL:如果FastAdmin需要使用数据库
  • Supervisor:用于守护进程管理(可选但推荐)

安装完成后,我们需要检查PHP扩展是否完整。进入宝塔的PHP管理界面,确保以下扩展已经安装:

  • pcntl(进程控制)
  • posix(系统调用)
  • sockets(套接字支持)

如果发现缺少扩展,直接在宝塔面板中点击安装即可。我曾经遇到过pcntl扩展缺失导致Workerman无法启动的情况,所以这一步检查非常重要。

2. 创建WebSocket服务项目

在FastAdmin项目根目录下创建websocket文件夹,这个位置的选择很有讲究。我建议放在与application同级的目录,这样既方便代码管理,又能保持项目结构清晰。新建server.php文件,内容如下:

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Workerman\Worker;
use Workerman\Connection\TcpConnection;

// 创建WebSocket服务器,监听2345端口
$ws_worker = new Worker("websocket://0.0.0.0:2345");

// 启动4个进程对外提供服务
$ws_worker->count = 4;

// 保存所有客户端连接
$clients = [];

// 当有客户端连接时
$ws_worker->onConnect = function(TcpConnection $connection) use (&$clients) {
    $connection->onWebSocketConnect = function(TcpConnection $connection) use (&$clients) {
        $clients[$connection->id] = $connection;
        echo "New connection: {$connection->id}\n";
    };
};

// 消息处理逻辑
$ws_worker->onMessage = function(TcpConnection $connection, $data) use (&$clients) {
    foreach ($clients as $client) {
        $client->send($da
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值