June 17, 2014 08:54AM
При использовании nginx-push-stream-module (+ родной JS FM pushstream.js ) и nginx 1.6 неожиданно появилась проблема:
крутится спин (загрузка) и 'ожидаю хост ...' и так до таймаута указанного в параметре push_stream_longpolling_connection_ttl,
в этот промежуток оставшийся JS недогружается до окончания таймаута...(document.ready).
Такое поведение при загрузке каждой страницы.
Используется схема лонг-пулл.

Логика хостов примерно следующая:
rpl.*.site.ru - push
*.site.ru - web

в JS более чем стандартно, приводить не имеет смысла, в конфиге nginx в общем-то тоже.
проблема решается только усечением ttl до 1 секунды, но это как-то неправильно, совсем...
трое суток экспериментов не принесли результата ...

может кто сталкивался?

http {

push_stream_shared_memory_size 60m;
push_stream_max_channel_id_length 150;
push_stream_max_messages_stored_per_channel 100;
push_stream_timeout_with_body off;
.....
server {
server_name
rpl.site.ru;
access_log off;
sendfile off;
charset utf-8;

include conf.d/header_set;

location /pub {
push_stream_publisher admin;
push_stream_store_messages on;
push_stream_channel_info_on_publish on;
push_stream_channels_path $arg_id;
client_max_body_size 256k;
client_body_buffer_size 256k;
allow 127.0.0.1;
}

location ~ /sub/(.*) {
push_stream_subscriber long-polling;
push_stream_channels_path $1;
push_stream_last_received_message_tag $arg_tag;
push_stream_last_received_message_time $arg_time;
push_stream_longpolling_connection_ttl 1s;
push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":~text~,\"tag\":\"~tag~\" итд..
add_header 'Access-Control-Allow-Origin' $allow_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS';
add_header 'Access-Control-Allow-Headers' $acah;
add_header 'Access-Control-Expose-Headers' 'ETag';
add_header 'Last-Modified' '';
if ($request_method = OPTIONS) { return 204; }
}

....
}

в JS :

var pushstream = new PushStream({
host: rplhost,
timeout: 20000,
urlPrefixLongpolling: '/sub',
modes: "longpolling"
});
pushstream.onmessage = rpl_messageReceived;
pushstream.onstatuschange = rpl_messageStatus;
pushstream.removeAllChannels();
pushstream.addChannel('n_...');
pushstream.addChannel('n_...');
.....
pushstream.connect();


собственно все ... от чего такие тормоза? не может быть что у всех так работает (не работает) ..
Subject Author Posted

1.6 и nginx-push-stream-module

den68 June 17, 2014 08:54AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 288
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready