// Кастомная конфигурация Jitsi Meet // Этот файл добавляется в конец сгенерированного config.js скриптом /etc/cont-init.d/10-config // ВАЖНО: Переопределяем bosh и websocket URL для использования HTTP и 127.0.0.1 // КРИТИЧНО: Переопределяем настройки подключения СРАЗУ после загрузки // Используем немедленно выполняемую функцию, чтобы код выполнился как можно раньше (function() { 'use strict'; // Переопределяем настройки подключения config.bosh = 'http://127.0.0.1:8443/http-bind'; config.websocket = 'ws://127.0.0.1:8443/xmpp-websocket'; // Также переопределяем в window, если используется if (typeof window !== 'undefined') { window.config = window.config || {}; window.config.bosh = 'http://127.0.0.1:8443/http-bind'; window.config.websocket = 'ws://127.0.0.1:8443/xmpp-websocket'; } })(); // Защищаем от перезаписи через Object.defineProperty (function() { var boshUrl = 'http://127.0.0.1:8443/http-bind'; var websocketUrl = 'ws://127.0.0.1:8443/xmpp-websocket'; try { Object.defineProperty(config, 'bosh', { get: function() { return boshUrl; }, set: function(value) { console.warn('[Jitsi Custom Config] Попытка изменить config.bosh на', value, '- игнорируется'); }, configurable: false, enumerable: true }); Object.defineProperty(config, 'websocket', { get: function() { return websocketUrl; }, set: function(value) { console.warn('[Jitsi Custom Config] Попытка изменить config.websocket на', value, '- игнорируется'); }, configurable: false, enumerable: true }); console.log('[Jitsi Custom Config] Настройки bosh и websocket защищены от перезаписи'); } catch (e) { console.warn('[Jitsi Custom Config] Не удалось установить защиту, используем периодическую проверку'); // Резервный механизм - периодическая проверка setInterval(function() { if (config.bosh !== boshUrl) { config.bosh = boshUrl; console.log('[Jitsi Custom Config] Восстановлен config.bosh'); } if (config.websocket !== websocketUrl) { config.websocket = websocketUrl; console.log('[Jitsi Custom Config] Восстановлен config.websocket'); } }, 100); } })();