Update app.py
This commit is contained in:
35
app.py
35
app.py
@@ -4210,7 +4210,9 @@ def robots_txt():
|
||||
)
|
||||
return content, 200, {"Content-Type": "text/plain"}
|
||||
|
||||
|
||||
from flask import render_template_string
|
||||
|
||||
@app.route('/admin/debug-socket')
|
||||
@login_required
|
||||
@admin_required
|
||||
@@ -4245,6 +4247,7 @@ def debug_socket():
|
||||
<button onclick="disconnect()">Rozlacz</button>
|
||||
<button onclick="emitTest()">Emit Test</button>
|
||||
<button onclick="simulateBackground()">Symuluj background (30s)</button>
|
||||
<button onclick="forcePolling()">Force Polling</button>
|
||||
|
||||
<h3>Logi:</h3>
|
||||
<div id="log"></div>
|
||||
@@ -4252,13 +4255,17 @@ def debug_socket():
|
||||
<script>
|
||||
let socket;
|
||||
let logLines = 0;
|
||||
let isPollingOnly = false;
|
||||
|
||||
function log(msg, color = '#fff') {
|
||||
const logEl = document.getElementById('log');
|
||||
logEl.innerHTML += `[${new Date().toLocaleTimeString()}] ${msg}\n`;
|
||||
logEl.scrollTop = logEl.scrollHeight;
|
||||
logLines++;
|
||||
if (logLines > 100) logEl.innerHTML = logEl.innerHTML.split('\\n').slice(-100).join('\\n');
|
||||
if (logLines > 100) {
|
||||
const lines = logEl.innerHTML.split('\\n');
|
||||
logEl.innerHTML = lines.slice(-100).join('\\n');
|
||||
}
|
||||
}
|
||||
|
||||
function updateStatus(connected) {
|
||||
@@ -4270,16 +4277,21 @@ def debug_socket():
|
||||
function connect() {
|
||||
if (socket) socket.disconnect();
|
||||
|
||||
const transports = isPollingOnly ? ['polling'] : ['polling', 'websocket'];
|
||||
log(`Laczenie z transports: ${transports.join(', ')}`);
|
||||
|
||||
socket = io('', {
|
||||
transports: ['websocket', 'polling'],
|
||||
transports: transports,
|
||||
timeout: 20000,
|
||||
autoConnect: false
|
||||
autoConnect: false,
|
||||
forceNew: true
|
||||
});
|
||||
|
||||
socket.on('connect', () => {
|
||||
log('CONNECTED', '#28a745');
|
||||
log('CONNECTED OK', '#28a745');
|
||||
updateStatus(true);
|
||||
document.getElementById('transport').textContent = socket.io.engine.transport.name;
|
||||
const transport = socket.io.engine.transport.name;
|
||||
document.getElementById('transport').textContent = transport;
|
||||
document.getElementById('sid').textContent = socket.id?.slice(0,8) + '...';
|
||||
socket.emit('requestfulllist', {listid: 1});
|
||||
});
|
||||
@@ -4290,11 +4302,11 @@ def debug_socket():
|
||||
});
|
||||
|
||||
socket.on('connect_error', (err) => {
|
||||
log(`CONNECT ERROR: ${err.message}`, '#ffc107');
|
||||
log(`CONNECT ERROR: ${err.message} (typ: ${err.type})`, '#ffc107');
|
||||
});
|
||||
|
||||
socket.onAny((event, ...args) => {
|
||||
log(`RECEIVED: ${event} ${JSON.stringify(args)}`);
|
||||
log(`RECEIVED ${event}: ${JSON.stringify(args)}`);
|
||||
});
|
||||
|
||||
socket.connect();
|
||||
@@ -4310,6 +4322,12 @@ def debug_socket():
|
||||
log('SENT: additem test');
|
||||
}
|
||||
|
||||
function forcePolling() {
|
||||
isPollingOnly = !isPollingOnly;
|
||||
log(`Polling only: ${isPollingOnly}`);
|
||||
connect();
|
||||
}
|
||||
|
||||
function simulateBackground() {
|
||||
log('Symulacja backgroundu... (zamknij/otworz karte za 30s)');
|
||||
setTimeout(() => {
|
||||
@@ -4318,12 +4336,15 @@ def debug_socket():
|
||||
}, 30000);
|
||||
}
|
||||
|
||||
// Auto start z polling first
|
||||
isPollingOnly = true;
|
||||
connect();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
''')
|
||||
|
||||
|
||||
# =========================================================================================
|
||||
# SOCKET.IO
|
||||
# =========================================================================================
|
||||
|
||||
Reference in New Issue
Block a user