PHPackages                             peachpear/pear-swoole - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. peachpear/pear-swoole

ActiveProject[Framework](/categories/framework)

peachpear/pear-swoole
=====================

pear for swoole framework

1.0.1(6y ago)00MPL-2.0PHPPHP &gt;=7.0.0CI failing

Since Mar 28Pushed 4y ago1 watchersCompare

[ Source](https://github.com/peachpear/pear-swoole)[ Packagist](https://packagist.org/packages/peachpear/pear-swoole)[ RSS](/packages/peachpear-pear-swoole/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (3)Versions (2)Used By (0)

pear-swoole
===========

[](#pear-swoole)

pear让你更畅快地编程。pear-swoole是以pear-api为基础，增加聊天必要服务，重整为支持聊天服务的项目。 支持PHP、RabbitMQ、MySQL、Redis、Kafka、Swoole。

### 前提准备

[](#前提准备)

必要服务支持：php-cli、Swoole、Mysql、Kafka、RabbitMQ、Redis

可选服务支持：Elasticsearch、Kibana、Jenkins

### 使用说明

[](#使用说明)

```
cd /yourProjectParentPath

composer create-project peachpear/pear-swoole yourProjectName

cd /path/yourProjectName/console/config

ln -sf dev.php main.php

```

### 数据表准备

[](#数据表准备)

chat配置表：

```
CREATE TABLE `chat_config` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `app_token` varchar(11) NOT NULL DEFAULT '' COMMENT '应用token',
  `role` varchar(20) NOT NULL DEFAULT '' COMMENT '角色',
  `appid` varchar(50) NOT NULL DEFAULT '' COMMENT '应用微信appid',
  `secret` varchar(50) NOT NULL DEFAULT '' COMMENT '应用微信secret',
  `is_blocked` tinyint(1) NOT NULL COMMENT '是否禁用',
  `is_deleted` tinyint(1) NOT NULL COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='接入应用表';

```

客户端在线列表

```
CREATE TABLE `client_online_list` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `app_token` varchar(11) NOT NULL DEFAULT '' COMMENT '应用token',
  `role` varchar(20) NOT NULL DEFAULT '' COMMENT '角色',
  `client_token` varchar(50) NOT NULL DEFAULT '客户端token',
  `client_id` varchar(50) NOT NULL DEFAULT 'base64_encode(serverIp_serverPort_clientFd)',
  PRIMARY KEY (`id`),
  KEY `idx_client_token` (`client_token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户端在线列表';

```

### 运行示例

[](#运行示例)

```
cd /path/yourProjectName/public

// swoole服务端开始运行
php yii swoole/start

// swoole服务端停止运行
php yii swoole/stop

// proxy服务端开始运行
php yii proxy/start

// proxy服务端停止运行
php yii proxy/stop

```

#### 特别说明

[](#特别说明)

proxy服务端的作用是代理服务，作为其中一个swoole服务端与其他swoole服务端信息交互的中间服务而存在。 这样设计的目的是本着一个进程一个服务做一件事，尽量为各独立服务解耦，使服务逻辑更清晰。

#### 目录结构

[](#目录结构)

```
├── common
│   ├── components
│   ├── config
│   ├── dao
│   ├── exception
│   ├── lib
│   ├── misc
│   ├── models
│   └── service
├── console
│   ├── components
│   ├── config
│   └── controllers
└── public
    └── yii

```

#### 编码规范

[](#编码规范)

```
1.PHP所有 关键字 必须 全部小写（常量 true 、false 和 null 也 必须 全部小写）
2.命名model对应的class 必须 以Model结尾
3.命名service对应的class 必须 以Service结尾
4.命名dao对应的class 必须 以Dao结尾
5.数据库查询返回接口 应该 使用model对象/对象列表
6.数据库的key必须是dbname+DB形式，e.g:dbname为test,则key为testDB
7.dao目录存放sql语句或者orm
8.model目录存放对应的数据实例对象
9.service目录存放业务逻辑处理

```

#### 客户端示例

[](#客户端示例)

浏览器在线处理业务逻辑：

```
// 处理收到的服务端信息
dealReceiveMsg(data, websocket) {
    switch (data.event)
    {
        case 'CONNECT' :
            // 客户端发起在线连接后，服务端连接成功后，发送信息给客户端要求补充信息
            // 获取client_token后，发送到服务端记录个人详情
            var sendMsg = '{"event":"CONNECT","data":{"client_token":"abc123f3rf4vds43534fd"}}';
            websocket.send(sendMsg);
            break;
        case 'ONLINE' :
            // 服务器通知客户端个人详情记录成功
            // 客户端可以做在线后的事，如获取自己未读的信息
            ......
        case 'NEW_MSG' :
            // 服务器发送新信息给客户端
            // 客户端做展示处理逻辑
            ......
        default:
            break;
    }
}

// 客户端浏览器js代码
$(document).on('click',"#online", function () {
    if ("WebSocket" in window) {
        // 打开一个 web socket
        var ws = new WebSocket("ws://localhost:9605");

        // 通信发生错误
        ws.onerror = function() {
            alert("WebSocket连接发生错误");
        }

        // 成功打开连接通路
        ws.onopen = function() {
            alert("WebSocket连接成功");
        }

        // 收到服务端数据
        ws.onmessage = function(ReceiveEvent) {
            var receiveMsg = JSON.parse(ReceiveEvent.data);  // 收到的服务端数据
            dealReceiveMsg(receiveMsg, ws);
        }

        // 连接关闭时触发
        ws.onclose = function() {
            alert("连接已关闭...");
        }

        // 监听窗口关闭事件，当窗口关闭时，主动关闭websocket连接，防止连接还没断开就关闭窗口server端抛异常
        window.onbeforeunload = function () {
            ws.close();
        }

        // 发送心跳包，一分钟一次
        function heartBeat(){
            ws.send('{"event":"HEART_BEAT","data":[]}');
        }
        setInterval(heartBeat, 60000);
    } else {
        alert("您的浏览器不支持 WebSocket!");
    }
});

```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2236d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/819a98d6510f153619bca993382ab14b56a861bdb371e60339aa9b98b9b20ace?d=identicon)[iBaiYang](/maintainers/iBaiYang)

---

Top Contributors

[![iBaiYang](https://avatars.githubusercontent.com/u/13947594?v=4)](https://github.com/iBaiYang "iBaiYang (5 commits)")

---

Tags

swoolePEARpeachpearpear-swoole

### Embed Badge

![Health badge](/badges/peachpear-pear-swoole/health.svg)

```
[![Health](https://phpackages.com/badges/peachpear-pear-swoole/health.svg)](https://phpackages.com/packages/peachpear-pear-swoole)
```

###  Alternatives

[laravel/octane

Supercharge your Laravel application's performance.

4.0k21.5M159](/packages/laravel-octane)[blink/blink

A high performance web framework and application server in PHP

83441.9k3](/packages/blink-blink)[hyperf/hyperf-skeleton

A coroutine framework that focuses on hyperspeed and flexible, specifically use for build microservices and middlewares.

301187.4k](/packages/hyperf-hyperf-skeleton)[fastd/fastd

The FastD High Performance API Framework

42015.2k17](/packages/fastd-fastd)[swoft/framework

swoft framework component

64181.4k85](/packages/swoft-framework)[swoole-foundation/yii2-swoole-extension

running yii2 web application on swoole server

4312.3k1](/packages/swoole-foundation-yii2-swoole-extension)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
