Flask-SocketIO Test
$(document).ready(function () {
// Connect to the Socket.IO server.
// The connection URL has the following format, relative to the current page:
// http[s]://:
[/]
// var socket = io();
var socket = io('http://192.168.0.20:8080');
// Event handler for new connections.
// The callback function is invoked when a connection with the
// server is established.
socket.on('connect', function () {
socket.emit('my_event', { data: 'I\'m connected!' });
});
// Event handler for server sent data.
// The callback function is invoked whenever the server emits data
// to the client. The data is then displayed in the "Received"
// section of the page.
socket.on('my_response', function (msg, cb) {
$('#log').append('
' + $('').text('Received #' + msg.count + ': ' + msg.data).html());
if (cb)
cb();
});
// Interval function that tests message latency by sending a "ping"
// message. The server then responds with a "pong" message and the
// round trip time is measured.
var ping_pong_times = [];
var start_time;
window.setInterval(function () {
start_time = (new Date).getTime();
$('#transport').text(socket.io.engine.transport.name);
socket.emit('my_ping');
}, 1000);
// Handler for the "pong" message. When the pong is received, the
// time from the ping is stored, and the average of the last 30
// samples is average and displayed.
socket.on('my_pong', function () {
var latency = (new Date).getTime() - start_time;
ping_pong_times.push(latency);
ping_pong_times = ping_pong_times.slice(-30); // keep last 30 samples
var sum = 0;
for (var i = 0; i < ping_pong_times.length; i++)
sum += ping_pong_times[i];
$('#ping-pong').text(Math.round(10 * sum / ping_pong_times.length) / 10);
});
// Handlers for the different forms in the page.
// These accept data from the user and send it to the server in a
// variety of ways
$('form#emit').submit(function (event) {
socket.emit('my_event', { data: $('#emit_data').val() });
return false;
});
$('form#broadcast').submit(function (event) {
socket.emit('my_broadcast_event', { data: $('#broadcast_data').val() });
return false;
});
$('form#join').submit(function (event) {
socket.emit('join', { room: $('#join_room').val() });
return false;
});
$('form#leave').submit(function (event) {
socket.emit('leave', { room: $('#leave_room').val() });
return false;
});
$('form#send_room').submit(function (event) {
socket.emit('my_room_event', { room: $('#room_name').val(), data: $('#room_data').val() });
return false;
});
$('form#close').submit(function (event) {
socket.emit('close_room', { room: $('#close_room').val() });
return false;
});
$('form#disconnect').submit(function (event) {
socket.emit('disconnect_request');
return false;
});
});
Flask-SocketIO Test
Async mode is: {{ async_mode }}[/b][b]
Current transport is: [/b][b]
Average ping/pong latency: ms[/b]
Send:
Receive:
Клиент: веб-браузер Google Chrome с одного ПК с ОС Windows в той же локальной сети.
Когда я подключаюсь к серверу, возвращается index.html, как и ожидалось (поэтому серверный скрипт делает все правильно), но никаких дальнейших ответов от сервера не происходит. получены, даже если я использую кнопки интерфейса веб-страницы.
Журнал ошибок Python постоянно показывает эти ошибки:
2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: d4PXlWixzGEEkGSDAAAA: Sending packet OPEN data {'sid': 'd4PXlWixzGEEkGSDAAAA', 'upgrades': ['websocket'], 'pingTimeout': 60000, 'pingInterval': 60000}
2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: [pid: 9999|app: 0|req: 2/2] 192.168.0.163 () {42 vars in 744 bytes} [Wed Nov 13 11:09:48 2024] GET /socket.io/?EIO=4&transport=polling&t=PCb01mX => generated 97 bytes in 4 msecs (HTTP/1.1 200) 3 headers in 149 bytes (2 switches on core 1)
2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: Invalid session d4PXlWixzGEEkGSDAAAA (further occurrences of this error will be logged with level INFO)
2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: Invalid session d4PXlWixzGEEkGSDAAAA (further occurrences of this error will be logged with level INFO)
2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: [pid: 10000|app: 0|req: 1/3] 192.168.0.163 () {46 vars in 889 bytes} [Wed Nov 13 11:09:48 2024] POST /socket.io/?EIO=4&transport=polling&t=PCb01mj&sid=d4PXlWixzGEEkGSDAAAA => generated 17 bytes in 7 msecs (HTTP/1.1 400) 3 headers in 143 bytes (1 switches on core 0)
2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: Invalid session d4PXlWixzGEEkGSDAAAA
2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: [pid: 10004|app: 0|req: 2/4] 192.168.0.163 () {42 vars in 794 bytes} [Wed Nov 13 11:09:48 2024] GET /socket.io/?EIO=4&transport=polling&t=PCb01mk&sid=d4PXlWixzGEEkGSDAAAA => generated 17 bytes in 1 msecs (HTTP/1.1 400) 3 headers in 143 bytes (1 switches on core 1)
Я читал другие сообщения, связанные с той же проблемой, но ни одно из них не решило проблему.
Я также пытался выполнить сценарий на одном ПК с Windows (127.0.0.1) ), и все работало нормально, как и ожидалось.
Проблема в том, что мне нужно, чтобы на сервере выполнялся скрипт Python...
Пожалуйста, может кто-нибудь помочь с этим?
Спасибо за заранее.
Я тестирую пакет Flask-SocketIO. Моя конфигурация:[b][list] [*]Сервер: Synology NAS DS218J (unix) в локальной сети, базовый пример выполняется на Python 3.9.14.
[*]Скрипт Python, работающий на сервере: [code]from flask import Flask, render_template from flask_socketio import SocketIO, emit
if __name__ == '__main__': socketio.run(app, port=8080) [/code]
[*]index.html отправить в браузер клиента: [code]
Flask-SocketIO Test
$(document).ready(function () { // Connect to the Socket.IO server. // The connection URL has the following format, relative to the current page: // http[s]://: [/] // var socket = io(); var socket = io('http://192.168.0.20:8080');
// Event handler for new connections. // The callback function is invoked when a connection with the // server is established. socket.on('connect', function () { socket.emit('my_event', { data: 'I\'m connected!' }); });
// Event handler for server sent data. // The callback function is invoked whenever the server emits data // to the client. The data is then displayed in the "Received" // section of the page. socket.on('my_response', function (msg, cb) { $('#log').append(' ' + $('').text('Received #' + msg.count + ': ' + msg.data).html()); if (cb) cb(); });
// Interval function that tests message latency by sending a "ping" // message. The server then responds with a "pong" message and the // round trip time is measured. var ping_pong_times = []; var start_time; window.setInterval(function () { start_time = (new Date).getTime(); $('#transport').text(socket.io.engine.transport.name); socket.emit('my_ping'); }, 1000);
// Handler for the "pong" message. When the pong is received, the // time from the ping is stored, and the average of the last 30 // samples is average and displayed. socket.on('my_pong', function () { var latency = (new Date).getTime() - start_time; ping_pong_times.push(latency); ping_pong_times = ping_pong_times.slice(-30); // keep last 30 samples var sum = 0; for (var i = 0; i < ping_pong_times.length; i++) sum += ping_pong_times[i]; $('#ping-pong').text(Math.round(10 * sum / ping_pong_times.length) / 10); });
// Handlers for the different forms in the page. // These accept data from the user and send it to the server in a // variety of ways $('form#emit').submit(function (event) { socket.emit('my_event', { data: $('#emit_data').val() }); return false; }); $('form#broadcast').submit(function (event) { socket.emit('my_broadcast_event', { data: $('#broadcast_data').val() }); return false; }); $('form#join').submit(function (event) { socket.emit('join', { room: $('#join_room').val() }); return false; }); $('form#leave').submit(function (event) { socket.emit('leave', { room: $('#leave_room').val() }); return false; }); $('form#send_room').submit(function (event) { socket.emit('my_room_event', { room: $('#room_name').val(), data: $('#room_data').val() }); return false; }); $('form#close').submit(function (event) { socket.emit('close_room', { room: $('#close_room').val() }); return false; }); $('form#disconnect').submit(function (event) { socket.emit('disconnect_request'); return false; }); });
Flask-SocketIO Test
Async mode is: {{ async_mode }}[/b][b] Current transport is: [/b][b] Average ping/pong latency: ms[/b]
Send:
Receive:
[/code]
[*]Клиент: веб-браузер Google Chrome с одного ПК с ОС Windows в той же локальной сети. [/list] Когда я подключаюсь к серверу, возвращается index.html, как и ожидалось (поэтому серверный скрипт делает все правильно), но никаких дальнейших ответов от сервера не происходит. получены, даже если я использую кнопки интерфейса веб-страницы. Журнал ошибок Python постоянно показывает эти ошибки: [code]2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: d4PXlWixzGEEkGSDAAAA: Sending packet OPEN data {'sid': 'd4PXlWixzGEEkGSDAAAA', 'upgrades': ['websocket'], 'pingTimeout': 60000, 'pingInterval': 60000} 2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: [pid: 9999|app: 0|req: 2/2] 192.168.0.163 () {42 vars in 744 bytes} [Wed Nov 13 11:09:48 2024] GET /socket.io/?EIO=4&transport=polling&t=PCb01mX => generated 97 bytes in 4 msecs (HTTP/1.1 200) 3 headers in 149 bytes (2 switches on core 1) 2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: Invalid session d4PXlWixzGEEkGSDAAAA (further occurrences of this error will be logged with level INFO) 2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: Invalid session d4PXlWixzGEEkGSDAAAA (further occurrences of this error will be logged with level INFO) 2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: [pid: 10000|app: 0|req: 1/3] 192.168.0.163 () {46 vars in 889 bytes} [Wed Nov 13 11:09:48 2024] POST /socket.io/?EIO=4&transport=polling&t=PCb01mj&sid=d4PXlWixzGEEkGSDAAAA => generated 17 bytes in 7 msecs (HTTP/1.1 400) 3 headers in 143 bytes (1 switches on core 0) 2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: Invalid session d4PXlWixzGEEkGSDAAAA 2024-11-13T11:09:48+01:00 DS218J python3.9-uwsgi[9810]: [pid: 10004|app: 0|req: 2/4] 192.168.0.163 () {42 vars in 794 bytes} [Wed Nov 13 11:09:48 2024] GET /socket.io/?EIO=4&transport=polling&t=PCb01mk&sid=d4PXlWixzGEEkGSDAAAA => generated 17 bytes in 1 msecs (HTTP/1.1 400) 3 headers in 143 bytes (1 switches on core 1) [/code] Я читал другие сообщения, связанные с той же проблемой, но ни одно из них не решило проблему. Я также пытался выполнить сценарий на одном ПК с Windows (127.0.0.1) ), и все работало нормально, как и ожидалось. Проблема в том, что мне нужно, чтобы на сервере выполнялся скрипт Python... Пожалуйста, может кто-нибудь помочь с этим? Спасибо за заранее.
Я развертываю приложение Flask с помощью Gunicorn, используя Flask-Socketio и Flask-Session.
В событии «connect» я хочу сохранить идентификатор сеанса клиента на стороне сервера с помощью Flask -Сессия для идентификации клиента по будущему запросу....
Я уже пробовал использовать различные методы с асинхронными функциями, задачами планирования и циклами событий. Я не знаю, что делать. Код ниже — это сокет, который получает загруженный файл и отправляет его в Discord. Если вам нужна дополнительная...
Я пытаюсь загрузить сертификат по указанному пути и получаю внутреннюю ошибку сервера на сервере Windows. Пока делаю на windows 10 все работает нормально.
Не работает код консольного приложения
var path = args ;
var password = args ;
var...
Недавно я обновил свой сервер с Tomcat 8 до Tomcat 11. Мне также пришлось сменить библиотеки Java на Jakarta и т. д. Раньше у меня были блокировки, но после обновления они стали более распространенными. После работы сервера в течение нескольких...
Я пытаюсь получить идентификатор сеанса текущего интерактивного пользователя. Но он должен работать в сценарии общего рабочего стола, например Citrix, при вызове из скрытого сеанса 0.
У меня есть несколько проблем.