Socket.io не согласованный поток данныхJavascript

Форум по Javascript
Ответить
Anonymous
 Socket.io не согласованный поток данных

Сообщение Anonymous »

У меня проблемы с использованием Socketio вместе с Flask для отображения «живых» данных.
Я получаю данные на своем веб -приложении, но это очень непоследовательно. Это не предсказуемо, когда данные поступят. Здесь я зарегистрировал некоторые данные, которые прибыли в качестве примера: < /p>

Код: Выделить всё

Live data received: Object { 1 time: 194.79929999929748, value: 0.021253876945582027}
Live data received: Object { 1 time: 240.1999998299949, value: 0.9913219514756684}
Live data received: Object { 1 time: 285.79999999999284, value: 0.02482940667349397}
Live data received: Object { 1 time: 331.19939999398926, value: -0.9718055527309507}
Live data received: Object { 1 time: 331.39998899998925, value: -0.9892221305516083}
Live date received: Object { 1 time: 376.79992999928018, value: -0.1899270803974535}
Live data received: Object { 1 time: 422.99999999998454, value: 0.8979144124613327}
Live data received: Object { 1 time: 468.3839999232813, value: -0.7849990633617221}
Live data received: Object { 1 time: 514.2293939999801, value: -0.4638514751873342}
Live date received: Object { 1 time: 514.9999999999861, value: 0.21939584858396854}
Live date received: Object { 1 time: 561.1999999999966, value: 0.9167452046090582}
Live data received: Object { 1 time: 561.3999999999907, value: 0.8105467146602126}
< /code>
Код, напечатанный кодом Python, состоит из консоли, кажется, довольно последовательно выплевывает новое значение каждые 100 мс. Производство греховной волны выглядит так: < /p>
app = Flask(__name__)
socketio = SocketIO(app)

def generate_live_data():
t = 0
while True:
time.sleep(0.1)
t += 0.1
value = math.sin(t)
socketio.emit("live_data", {"time": t, "value": value})
print(f"Live data received:", data)

thread = Thread(target=generate_live_data, daemon=True)
thread.start()

if __name__ == "__main__":
socketio.run(app, host="0.0.0.0", port=5000, debug=True)
< /code>
и моя фронтальная структура Javascript выглядит так: < /p>
socket.on("live_data", data => {
if (liveChart) {
liveChart.data.labels.push(data.time.toFixed(1));
liveChart.data.datasets[0].data.push(data.value.toFixed(2));
if (liveChart.data.labels.length > 50) {
liveChart.data.labels.shift();
liveChart.data.datasets[0].data.shift();
}
liveChart.update();
}
});
Есть ли что -то не так с моим кодом, что может повлиять на это медленное и нерегулярное обновление диаграммы?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ata-stream
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»