1 頁 (共 1 頁)

如何用composer安裝GatewayWorker

發表於 : 2026-09-10, 05:43
Brave Ye
安裝 GatewayWorker 最推薦且標準的方式是透過 Composer 專案範例直接建立,或是在現有的 PHP 專案中引入套件。
以下為具體的安裝步驟與範例說明:
方法一:直接建立全新的 GatewayWorker 完整專案(推薦)
這是官方最推薦的方式,Composer 會自動下載 GatewayWorker 核心以及寫好的基礎目錄結構與啟動檔(start.php、start_gateway.php、Events.php 等)。
在終端機(Terminal)執行以下指令:
composer create-project workerman/gateway-worker my-chat-app

安裝完成後,進入專案目錄並啟動服務:
cd my-chat-app

# 以除錯(Debug)模式啟動,方便在控制台即時查看 Log
php start.php start

# 若要背景執行(Production 環境):
# php start.php start -d

> 目錄結構說明:
> * Applications/YourApp/Events.php:撰寫聊天室邏輯(如 onMessage、onClose)的核心檔案。
> * Applications/YourApp/start_gateway.php:配置連線埠(Port)、WebSocket 協定與心跳檢測(Heartbeat)。
> * Applications/YourApp/start_businessworker.php:配置處理業務邏輯的 Worker 進程數量。
>
方法二:在現有專案中引入 GatewayWorker 套件
如果您已經有一個現有的 PHP 專案(例如 Laravel、ThinkPHP、Symfony 或原生 PHP 專案),只需引入 GatewayWorker 的核心庫:
composer require workerman/gateway-worker

引入後,您可以手動建立啟動腳本。例如建立一個 server.php:
<?php
require_once __DIR__ . '/vendor/autoload.php';

use Workerman\Worker;
use GatewayWorker\Register;
use GatewayWorker\Gateway;
use GatewayWorker\BusinessWorker;

// 1. 初始化 Register 服務(用於 Gateway 與 BusinessWorker 之間的通訊)
$register = new Register('text://0.0.0.0:1238');

// 2. 初始化 Gateway 服務(對外提供 WebSocket 連線)
$gateway = new Gateway("websocket://0.0.0.0:8282");
$gateway->name = 'ChatGateway';
$gateway->count = 4;
$gateway->lanIp = '127.0.0.1';
$gateway->startPort = 2000;
$gateway->registerAddress = '127.0.0.1:1238';

// 3. 初始化 BusinessWorker 服務(處理業務邏輯)
$worker = new BusinessWorker();
$worker->name = 'ChatBusinessWorker';
$worker->count = 4;
$worker->registerAddress = '127.0.0.1:1238';
$worker->eventHandler = 'MyEvents'; // 指定事件處理類別

// 運行所有 Worker
Worker::runAll();

注意事項與環境要求
* PHP 版本要求: GatewayWorker 需要 PHP 7.0 或以上的版本(支援 PHP 8.0 ~ 8.5+)。
* 必需擴充: 系統必須安裝並開啟 pcntl 與 posix 擴充套件(Linux 環境預設已內建,Windows 環境無法原生的使用多進程機制,需透過 Workerman Windows 相容包)。
* 事件輪詢擴充(選填但建議): 若要支援高並發,請確認已透過 PECL 安裝 event 擴充:
pecl install event