PHPackages                             jianyan74/yii2-websocket - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. jianyan74/yii2-websocket

ActiveYii2-extension[HTTP &amp; Networking](/categories/http)

jianyan74/yii2-websocket
========================

yii2 websocket

1.1.1(8y ago)346.4k21[1 issues](https://github.com/jianyan74/yii2-websocket/issues)1Apache-2.0PHPPHP &gt;=7.0

Since Mar 3Pushed 8y ago2 watchersCompare

[ Source](https://github.com/jianyan74/yii2-websocket)[ Packagist](https://packagist.org/packages/jianyan74/yii2-websocket)[ Docs](https://github.com/jianyan74/yii2-websocket)[ RSS](/packages/jianyan74-yii2-websocket/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (8)Dependencies (2)Versions (8)Used By (1)

Yii2 WebSocket
--------------

[](#yii2-websocket)

即时通讯Demo

### 问题反馈

[](#问题反馈)

在使用中有任何问题，欢迎反馈给我，可以用以下联系方式跟我交流

QQ群：[655084090](https://jq.qq.com/?_wv=1027&k=4BeVA2r)

### 前提

[](#前提)

服务器安装swoole

```
 git clone https://github.com/swoole/swoole-src.git
 cd swoole-src
 phpize
 ./configure --enable-openssl -with-php-config=[PATH] #注意[PATH]为你的php地址 开启ssl用
 make && make install

```

### 安装

[](#安装)

composer执行

```
composer require "jianyan74/yii2-websocket"

```

或者在 `composer.json` 加入

```
"jianyan74/yii2-websocket": "^1.0"

```

### 配置

[](#配置)

在 `common/config/main.php` 加入以下配置

```
   'redis' => [
       'class' => 'yii\redis\Connection',
       'hostname' => 'localhost',
       'port' => 6379,
       'database' => 0,
   ],

```

在 `console/config/main.php` 加入以下配置。（注意：配置在controllerMap里面）

```
// webSocket
'websocket' => [
   'class' => 'jianyan\websocket\console\WebSocketController',
   'server' => 'jianyan\websocket\server\WebSocketServer', // 可替换为自己的业务类继承该类即可
   'host' => '0.0.0.0',// 监听地址
   'port' => 9501,// 监听端口
   'type' => 'ws', // 默认为ws连接，可修改为wss
   'config' => [// 标准的swoole配置项都可以再此加入
       'daemonize' => false,// 守护进程执行
       'task_worker_num' => 4,//task进程的数量
       // 'ssl_cert_file' => '',
       // 'ssl_key_file' => '',
       'pid_file' => __DIR__ . '/../../backend/runtime/logs/server.pid',
       'log_file' => __DIR__ . '/../../backend/runtime/logs/swoole.log',
       'log_level' => 0,
   ],
],

```

### 使用

[](#使用)

```
# 启动
php ./yii websocket/start
# 停止
php ./yii websocket/stop
# 重启
php ./yii websocket/restart

```

### 测试

[](#测试)

```

    var wsl = 'ws://[to/your/url]:9501'; // 如果是wss的改成wss://[to/your/url]:9501
    ws = new WebSocket(wsl);// 新建立一个连接
    // 如下指定事件处理
    ws.onopen = function () {
        var login_data = '{"type":"login","nickname":"隔壁老王","head_portrait":"123","room_id":10001}';
        ws.send(login_data);
    };
    // 接收消息
    ws.onmessage = function (evt) {
        console.log(evt.data);
        /*ws.close();*/
    };
    // 关闭
    ws.onclose = function (evt) {
        console.log('WebSocketClosed!');
    };
    // 报错
    ws.onerror = function (evt) {
        console.log('WebSocketError!');
    };

    // 聊天
    function say(msg){
        if(msg){
            var data = '{"type":"say","to_client_id":"all","content":'+ msg +'}';
            ws.send(data);
        }
    }

```

### 接口文档

[](#接口文档)

> 发送消息的格式全部以json字符串发过来

### 心跳

[](#心跳)

请求地址

```
ws://[to/you/url]:9501

```

参数

参数名说明typepong无返回

### 进入房间

[](#进入房间)

请求地址

```
ws://[to/you/url]:9501

```

参数

参数名说明typeloginroom\_id房间iduser\_id用户idnickname用户昵称head\_portrait用户头像返回(1)

```
{
　　"type":"login",
　　"from_client_id":2,
　　"to_client_id":"all",
　　"time":"2018-04-10 16:41:29",
　　"count":"1",
　　"member":{
　　　　"fd":2,
　　　　"room_id":10001,
　　　　"user_id":1,
　　　　"nickname":"隔壁老王",
　　　　"head_portrait":"123"
　　}
}

```

返回(2)

> 当前登录的人还会返回一个在线列表

```
{
　　"type":"list",
　　"from_client_id":2,
　　"to_client_id":2,
　　"time":"2018-04-10 16:41:29",
　　"list":[{
     　　"fd":2,
     　　"room_id":10001,
     　　"user_id":1,
     　　"nickname":"隔壁老王",
     　　"head_portrait":"123"
     }]
}

```

### 发言

[](#发言)

请求地址

```
ws://[to/you/url]:9501

```

参数

参数名说明typesayto\_client\_id对谁说话:默认 allcontent内容返回

```
{
　　"type":"say",
　　"from_client_id":2,
　　"to_client_id":"all",
　　"time":"2018-04-10 16:43:00",
　　"content":"123"
}

```

### 送礼物

[](#送礼物)

请求地址

```
ws://[to/you/url]:9501

```

参数

参数名说明typegiftgift\_id礼物id返回

```
{
	"type": "gift",
	"from_client_id": 4,
	"to_client_id": "all",
	"gift_id": "礼物id",
	"time": "2018-03-06 11:27:15"
}

```

### 离开房间

[](#离开房间)

请求地址

```
ws://[to/you/url]:9501

```

参数

参数名说明typeleave返回

```
{
	"type": "leave",
	"from_client_id": 1,
	"to_client_id": "all",
	"count": 2,
	"time": "2018-03-06 11:27:15"
}

```

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity36

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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

Every ~6 days

Total

7

Last Release

2999d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/471d25dc73e2284afad914ef1fff768f91a03302c68c081ef0140e5785a54a10?d=identicon)[jianyan74](/maintainers/jianyan74)

---

Top Contributors

[![jianyan74](https://avatars.githubusercontent.com/u/15722280?v=4)](https://github.com/jianyan74 "jianyan74 (1 commits)")

---

Tags

phpswoolewebsocketyii2yii2-websocketphpwebsocketswooleyii2yiijianyan74

### Embed Badge

![Health badge](/badges/jianyan74-yii2-websocket/health.svg)

```
[![Health](https://phpackages.com/badges/jianyan74-yii2-websocket/health.svg)](https://phpackages.com/packages/jianyan74-yii2-websocket)
```

###  Alternatives

[hyperf/websocket-server

A websocket server library for Hyperf.

12513.1k29](/packages/hyperf-websocket-server)[immusen/yii2-swoole-websocket

Websocket server for Yii2 base on swoole 4, Support JSONRPC, Resolve 'method' as a route reflect into controller/action, And support http or redis pub/sub to trigger async task from your web application.

338.8k](/packages/immusen-yii2-swoole-websocket)[swoft/websocket-server

swoft websocket server component

16135.3k5](/packages/swoft-websocket-server)[yiiplus/yii2-websocket

使用yii2封装 websocket 扩展

212.6k](/packages/yiiplus-yii2-websocket)

PHPackages © 2026

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