dizews / yii2-push-stream

yii2 push stream wrapper
3 stars 2 forks source link

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

Closed YaRomaniuk closed 9 years ago

YaRomaniuk commented 9 years ago

Доброго времени суток. Я только начинаю разбираться в программировании подскажите пожалуйста как использовать данный модуль. В 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 секунд ?

dizews commented 9 years ago

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

YaRomaniuk commented 9 years ago

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

dizews commented 9 years ago

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

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

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

Про параметры я спрашивал т.к. предполагал что то типа для отправки : <?= \dizews\pushStream\PushStreamWidget::widget([ 'pusher'=>[ channel=>'ch1', message=>'сообщение', ], ]); ?>

и для получения: <?= \dizews\pushStream\PushStreamWidget::widget([ 'listen'=>[ channel=>'ch1', ], ]); ?>

dizews commented 9 years ago

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

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

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

YaRomaniuk commented 9 years ago

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

dizews commented 9 years ago

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