dgoriaev / yii2-websocket
为Yii2提供的组件。适用于php >= 8.0的分支
1.0.0
2024-02-16 13:56 UTC
Requires
- php: >=8.0
- workerman/workerman: ^4.0
- yiisoft/yii2: ^2.0
This package is auto-updated.
Last update: 2024-09-16 16:31:18 UTC
README
基于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]]));