PHPackages                             uzdevid/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. uzdevid/yii2-websocket

ActiveLibrary[HTTP &amp; Networking](/categories/http)

uzdevid/yii2-websocket
======================

Yii2 Web Socket service

1.0.5(1y ago)12561MITPHPPHP &gt;=8.1

Since May 19Pushed 1y agoCompare

[ Source](https://github.com/uzdevid/yii2-websocket)[ Packagist](https://packagist.org/packages/uzdevid/yii2-websocket)[ RSS](/packages/uzdevid-yii2-websocket/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (7)Used By (0)

WebSocket Application for Yii2 framework
========================================

[](#websocket-application-for-yii2-framework)

Yii2 WebSocket Application is a powerful and flexible extension for the Yii2 framework that enables developers to integrate a WebSocket server into their applications. Built on top of the `workerman/workerman` package, this extension is ideal for creating real-time features such as chats, notifications, online games, and other interactive applications that require a persistent connection to the server.

### Installation

[](#installation)

```
composer require uzdevid/yii2-websocket
```

### Usage

[](#usage)

Application configuration similar to the default application.

Create config file `/socket/config/main.php`

```
use UzDevid\WebSocket\Server\WebSocketServer;

$params = array_merge(
    require __DIR__ . '/../../common/config/params.php',
    require __DIR__ . '/params.php',
);

return [
    'id' => 'web-socket-app',
    'basePath' => dirname(__DIR__),
    'controllerNamespace' => 'socket\\controllers',
    'webSocketServer' => [
        'class' => WebSocketServer::class,
        'host' => '0.0.0.0',
        'port' => 8080,
        'count' => 1
    ],
    'components' => [],
    'params' => $params,
];
```

With the current settings, the web socket server will listen on `0.0.0.0:8080`. Count of workers: 1

---

Message processing occurs through the controller and action. Create `/socket/EchoController` controller.

```
namespace socket\controllers;

use UzDevid\WebSocket\Controller;
use UzDevid\WebSocket\Server\Dto\Client;

class EchoController extends Controller {
    /**
     * @param Client $client
     * @param array $payload
     * @return void
     */
    public function actionEcho(Client $client, array $payload): void {
        $client->user->send('echo:echo', ['currentTime' => time()]);
    }
}
```

---

Create entry point file named `/run`

```
#!/usr/bin/env php
/**
 * Yii WebSocket bootstrap file.
 */
use UzDevid\WebSocket\Application;

require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/common/сonfig/bootstrap.php';
require __DIR__ . '/socket/сonfig/bootstrap.php';

$config = yii\helpers\ArrayHelper::merge(
    require __DIR__ . '/common/сonfig/main.php',
    require __DIR__ . '/socket/сonfig/main.php',
);

$application = new Application($config);
$application->run();
```

---

To start the server you need to run the command:

```
php /run start
```

For testing, we can use the Postman program. You need to create a web socket connection. You need to create a web socket connection with port `ws://0.0.0.0:8080`, which is specified in the application configuration.

Message Body Format.

```
{
  "method": "echo:echo",
  "payload": {}
}
```

The `method` parameter is similar to a regular url, the only difference is in the separator `:` What is specified in the payload parameter You can get them in the action arguments.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance33

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

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

Every ~12 days

Total

6

Last Release

668d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/104216283?v=4)[UzDevid](/maintainers/uzdevid)[@uzdevid](https://github.com/uzdevid)

---

Top Contributors

[![DikoIbragimov](https://avatars.githubusercontent.com/u/167644693?v=4)](https://github.com/DikoIbragimov "DikoIbragimov (81 commits)")

---

Tags

phpwebsocketyii2extension

### Embed Badge

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

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

###  Alternatives

[joni-jones/yii2-wschat

Online chat based on web sockets and ratchet php

981.3k](/packages/joni-jones-yii2-wschat)[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)[jianyan74/yii2-websocket

yii2 websocket

346.2k1](/packages/jianyan74-yii2-websocket)[yiiplus/yii2-websocket

使用yii2封装 websocket 扩展

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

PHPackages © 2026

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