larsnovikov / yii2multiresponse
多响应组件
v1.1
2018-06-19 10:37 UTC
Requires
- consik/yii2-websocket: ^1.0
- enqueue/amqp-lib: ^0.8.23
- textalk/websocket: ^1.0
- yiisoft/yii2: ~2.0.0
- yiisoft/yii2-queue: ~2.0.0
This package is not auto-updated.
Last update: 2024-10-02 21:44:52 UTC
README
通过WebSocket加载内容的组件。通过并行调用API加速微服务小部件的渲染,提高渲染速度可达50%。同时也可以并行处理耗资源任务。
安装
推荐通过 composer 安装此扩展。
运行以下命令
composer require larsnovikov/yii2multiresponse
或者在 composer.json 文件的 require 部分添加以下内容
"larsnovikov/yii2multiresponse": "*"
使用方法
- 在配置文件
modules中添加
'yii2multiresponse' => [
'class' => 'vendor\larsnovikov\yii2multiresponse\Module',
'socketUrls' => [
// TODO тут необходимо сконфигурировать пути для виджетов к WebSocket серверу
\vendor\larsnovikov\yii2multiresponse\examples\widgets\HtmlTestWidget::class => [
'ws://socket-test.loc:5005',
'ws://socket-test.loc:5006',
'ws://socket-test.loc:5007'
],
\vendor\larsnovikov\yii2multiresponse\examples\widgets\JsonTestWidget::class => [
'ws://socket-test.loc:5005',
'ws://socket-test.loc:5006',
'ws://socket-test.loc:5007'
]
]
],
- 在配置文件
components中添加队列
'multiResponseQueue' => array_merge(
[
'class' => \yii\queue\amqp_interop\Queue::class,
'queueName' => 'multiresponse.queue'
],
[
'port' => 5672,
'user' => 'public',
'password' => 'public',
'driver' => yii\queue\amqp_interop\Queue::ENQUEUE_AMQP_LIB,
'dsn' => 'amqp://public:public@172.17.0.1:5672/%2F',
]
),
-
在配置文件
bootstrap中添加队列组件的名称 -
根据需要从WS服务器接收的响应类型,继承自
vendor\larsnovikov\yii2multiresponse\widgets\AbstractHtmlWidget或vendor\larsnovikov\yii2multiresponse\widgets\AbstractJsonWidget -
输出小部件,例如
echo \vendor\larsnovikov\yii2multiresponse\examples\widgets\HtmlTestWidget::widget([
'dataRequest' => new \vendor\larsnovikov\yii2multiresponse\requests\DataRequest(
'@vendor/larsnovikov/yii2multiresponse/widgets/views/empty_container',
\vendor\larsnovikov\yii2multiresponse\examples\widgets\HtmlTestWidget::class,
[
'test1' => rand(0, 9999),
'test2' => rand(0, 9999)
])
]);
启动
- 启动WSServer
php yii yii2multiresponse/server/start <port>或bash socket.sh <port>,其中<port>是端口号 - 启动队列监听器,例如:
php yii multi-response-queue/listen