dgoriaev/yii2-websocket

为Yii2提供的组件。适用于php >= 8.0的分支

安装: 10

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 0

分支: 2

公开问题: 0

类型:yii2-components

1.0.0 2024-02-16 13:56 UTC

This package is auto-updated.

Last update: 2024-09-16 16:31:18 UTC


README

Latest Stable Version License Total Downloads Monthly Downloads Daily Downloads

基于workerman/workerman的Web-socket组件,适用于Yii2

安装

建议通过composer来安装此扩展。

注意:请检查此扩展的依赖和要求composer.json

运行以下命令之一

$ php composer.phar require goodizer/yii2-websocket

或者

"goodizer/yii2-websocket": "*"

将以下内容添加到您的composer.json文件的require部分。

使用方法

GridSearchHelper

设置websocket组件配置。

    'components' => [
        ...
        'websocketServer' => [
          'class' => 'goodizer\websocket\Server',
          'commandClass' => 'console\extensions\Commands',//Your class that inherit goodizer\websocket\Commands
            'host' => $params['websocketServer']['host'] ?? 'localhost',
            'port' => $params['websocketServer']['port'] ?? 8000,
            'isSecure' => $params['websocketServer']['isSecure'] ?? false,
            'localCert' => $params['websocketServer']['localCert'] ?? null,
            'localPk' => $params['websocketServer']['localPk'] ?? null,
        ],
        ...
    ],

创建控制器

<?php

namespace console\controllers;

use Yii;
use yii\console\Controller;
use goodizer\websocket\Server;

/**
 * Class WebsocketServerController
 * @package console\controllers
 */
class WebsocketServerController extends Controller
{
  /**
   * @throws \Exception
   */
  public function actionStart()
  {
    /** @var Server $server */
    $server = Yii::$app->websocketServer;
    $server->start();
  }
}

...然后在控制台运行

#php yii websocket-server\start

从后端作为客户端发送数据到服务器

    /** @var goodizer\websocket\Client $client */
    $client = Yii::$app->get('websocketClient');
    $client->send(json_encode(['method' => 'foo', 'params' => ['bar' => true]]));