'глючковый сервак' - это что-то новое, не ожидал от 'корифеяIT'.
Вы с потерей точек разобрались? Или нет? Они же будут теряться, даже если передавать реже 1-го раза в секунду. В сети пакеты приходят как попало и имеют разные задержки, а ваш сервак не ест точки, если между ними нет его любимой паузы. Самое интересное в этом - как умудрились сделать это(?). Если писать в лоб, то так не получиться.
Посылаем сообщение новой точки на графике, предположим оно где-то застряло по пути и пришло через 1.01 секунд на ваш сервер. Он его съел, поместил в график и отправил подтверждение. Мы приняли подтверждение, а по счетчику времени у нас пора передавать следующую точку. Мы её и передаем... она приходт на глюк-сервер, пусть через 10 ms. Тут глюк-сервер обиделся - не прошла его специально программно вставленная любимая пауза, и кушать точку не хочет и занимается неизвестно чем. Усё - протокол нарушен, точка пропала...
Если серверу не сожрать несколько точек из-за проблем в графиках, то самое простое решение - отказаться от протокола запрос-ответ. Посылаем хоть 100 сообщений точек, не дожидаясь ответа. У нас вроде не UDP
Сервер их съест и выведет на график среднее за свой любимый промежуток. При этом ему не обязательно передавать ответы на прием каждой точки.
Но это тоже решение глупой проблемы, связанной с невозможностью подписи времени точки точнее 1 сек для данных графика. Более нормальное решение для отображения(!) - выводить мин и мах за промежуток. Но оно не позволяет рассчитывать среднее значение за период.
"Глючковатый" сервер и назван, по причине невозможности обработки данных с него ни для каких расчетов. И нафига для таких данных какая-то стабильность сервера?
Ну рисует картинки - может и падать - картинки будут веселее...
Так-же очень сильно перегружен интерфейс ответов. Зачем тупому IoT устройству знать куда и как сервер поместил отосланную точку? Он его посылку с временем в его формате в жизнь не разберет - ресурсов не хватит, а вот время и память для приема этой длинющей аброкадабры необходимо на устройстве выделить, чтобы понять в вашем запросно-ответном протоколе, что точка дошла, и только после этого, выждав паузу, можно передавать другую. Вот зачем это всё? Писал любитель-фрик? Мало гарантированной доставки в TCP, надо обязательно ввести поверх свой протокол подтверждения доставки?
Наверно сеть мало нагружена и надо было её забить отсылкой простыней о самочувствии сервера с его дня рождения
А почему он не отсылает dmesg на любое сообщение в websocket? Программист-фрик постеснялся?