dizews / yii2-push-stream

yii2 push stream wrapper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Параметры push-stream виджета

YaRomaniuk opened this issue · comments

Доброго времени суток.
Я только начинаю разбираться в программировании подскажите пожалуйста как использовать данный модуль.
В nginx.conf у меня
location /pub {
push_stream_publisher admin;
push_stream_channels_path $arg_id;
}
location ~ /sub/(.*) {
push_stream_subscriber long-polling;
push_stream_channels_path $1;
push_stream_last_received_message_time $arg_time;
push_stream_last_received_message_tag $arg_tag;
push_stream_message_template "{"id":id,"channel":"channel","text":"text", "time":"time", "tag":"tag"}";
push_stream_longpolling_connection_ttl 30s;
}
Какие параметры для отправки и получения нужно нужно передавать в виджет ?
И какой параметр будет отвечать за повторное подключение по истечению 30 секунд ?

@vegro для создания коннекта виджет берет информацию из настроек компонента 'Pusher'

Если есть возможность не могли бы вы показать пример.

настройка компонента:

'pusher' => [
            'class' => 'dizews\pushStream\Pusher',
            'serverOptions' => [
                'useSsl' => false,
                'host' => '127.0.0.1',
                'port' => 8080,
                'path' => '/pub'
            ],
            'listenServerOptions' => [
                'path' => '/ev',
                'modes' => 'eventsource'
            ]
        ],

Спасибо, большое. Но я видимо не правильно задаю вопросы.
Эти настройки у меня выставлены в соответствии с настройками nginx.
Есть две страницы А и Б как мне организовать передачу сообщений?

Про параметры я спрашивал т.к. предполагал что то типа для отправки :

[ channel=>'ch1', message=>'сообщение', ], ]); ?>

и для получения:

[ channel=>'ch1', ], ]); ?>

Виджет предназначен только для прослушивания.
для того чтобы пушить данные необходимо написать собственный action который будет отправлять данные слушателю:

Yii::$app->pusher->publish('ch1', 'order.close', $data);

данный пример отправляет событие 'order.close' и данные в канал 'ch1'. На стороне клиента необходимо написать на javascript-е обработчик события, что необходимо с этими данными сделать.

Спасибо большое, теперь будет проще разобраться.

если вопросов больше нет. закройте таск.