.statusbar {
height: 15px;
border-radius: 15px;
background-color: blue;
}
<div class="statusbar" style="width=15%"></div>
<div class="statusbar" style="width=65%"></div>
<div class="statusbar" style="width=98%"></div>
...
<div class="statusbar" style="width=5%"></div>
let socket;
let cookieUserId = $.cookie('userId');
let reconnectAttempts = 0;
const MAX_RECONNECT_ATTEMPTS = 100;
function tryToConnect() {
socket = new WebSocket('wss:// ... /?userId='+cookieUserId); // замените на ваш адрес сервера
socket.onopen = onSocketOpen;
socket.onmessage = onSocketMessage;
socket.onclose = onSocketClose;
socket.onerror = onSocketError;
}
function onSocketOpen(e) {
console.log('Успешное соединение');
reconnectAttempts = 0; // сбрасываем число попыток при успешном подключении
... // ваш код при успешном соединении
};
function onSocketClose(e) {
console.log('Соединение закрыто. Попытка повторного подключения');
if (reconnectAttempts < MAX_RECONNECT_ATTEMPTS) {
setTimeout(() => tryToConnect(), 2000); // повторное подключение через 1 секунду
reconnectAttempts++;
}
else {
console.log('Слишком много попыток соединения. Соединение невозможно, попробуйте позже');
}
}
function onSocketError(e) {
console.log('Ошибка соединения');
...
}
function onSocketMessage(e) {
console.log('You have a new message');
...
}
document.addEventListener('DOMContentLoaded', () => {
tryToConnect(); // начинаем соединение после загрузки DOM
});
window.onfocus = function(){
console.log('Окно активно');
if (socket.readyState !== 1) { // если за время неактивности окна соединение прервалось
tryToConnect() // подключаемся заново
}
else {
console.log('Соединение до сих пор активно, повторная попытка не требуется. Статус: ' + socket.readyState)
}
}
<VirtualHost 127.0.0.1:8080>
ServerName site.ru
ServerSignature Off
RewriteEngine on
ErrorDocument 404 /?error=404
ServerAdmin "info@site.ru"
ServerAdmin "info@site.ru"
AssignUserID site site
DocumentRoot /SOME_PATH/site/site.ru/www
CustomLog /var/log/apache2/site.ru.access.log combined
ErrorLog /var/log/apache2/site.ru.error.log
ServerSignature On
Options FollowSymLinks Includes MultiViews ExecCGI
UseCanonicalName Off
<IfModule mod_ssl.c>
SSLEngine off
</IfModule>
<Directory /SOME_PATH/site/site.ru/www>
Options +ExecCGI
AllowOverride All
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir "/SOME_PATH/site/site.ru/www/:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value memory_limit 128M
php_admin_value upload_max_filesize 128M
php_admin_value post_max_size 32M
php_admin_value open_basedir "/SOME_PATH/site/site.ru/www:/tmp"
</IfModule>
<IfModule mod_fcgid.c>
<Files ~ (\.fcgi)>
SetHandler fcgid-script
Options +FollowSymLinks +ExecCGI
</Files>
</IfModule>
</Directory>
</VirtualHost>
<VirtualHost 127.0.0.1:8080>
ServerName www.site.ru
ServerAlias *.site.ru
ServerSignature Off
RewriteEngine on
ErrorDocument 404 /?error=404
ServerAdmin "info@site.ru"
ServerAdmin "info@site.ru"
AssignUserID site site
DocumentRoot /SOME_PATH/site/site.ru/www
VirtualDocumentRoot /SOME_PATH/site/site.ru/%1
CustomLog /var/log/apache2/site.ru.access.log combined
ErrorLog /var/log/apache2/site.ru.error.log
ServerSignature On
Options FollowSymLinks Includes MultiViews ExecCGI
UseCanonicalName Off
<IfModule mod_ssl.c>
SSLEngine off
</IfModule>
<Directory /SOME_PATH/site/site.ru/www>
Options +ExecCGI
AllowOverride All
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir "/SOME_PATH/site/site.ru/www/:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value memory_limit 128M
php_admin_value upload_max_filesize 128M
php_admin_value post_max_size 32M
php_admin_value open_basedir "/SOME_PATH/site/site.ru/www:/tmp"
</IfModule>
<IfModule mod_fcgid.c>
<Files ~ (\.fcgi)>
SetHandler fcgid-script
Options +FollowSymLinks +ExecCGI
</Files>
</IfModule>
</Directory>
</VirtualHost>
server {
listen 80;
server_name www.site.ru;
return 301 http://site.ru$request_uri;
}
server {
listen 80;
server_name site.ru;
root /SOME_PATH/site/site.ru/www;
access_log /var/log/nginx/site.ru.access.log;
error_log /var/log/nginx/site.ru.error.log info;
error_page 404 = @fallback;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
access_log /dev/null;
error_log /dev/null crit;
}
location @fallback {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}