Size: a a a

2020 March 13

KK

Kirill (Cykooz) Kuzminykh in rannts
Понятно. В случае HTTP наверное ни каких херабитов не получится сделать. Разве что они есть на уровне TCP, но это надо наверное какой-то HTTP-клиент специальный
источник

SA

Sergey Arkhipov in rannts
на уровне TCP они называются keepalive
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Хм, интересно а если я его на стороне haproxy включу - клиент будет это учитывать?
источник

БС

Байт Словович in rannts
Зачем тебе это на уровне HTTP? HTTP 2 это штука которая работает на уровне: открыл, послал, получил, закрыл.
источник

БС

Байт Словович in rannts
Чем тебя таймауты не устраивают? И зачем тебе долгоживущий HTTP?
источник

БС

Байт Словович in rannts
у тебя вебсокеты7
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Ну я в том плане что клиент юзает HTTP. И как, например в том же requests, включить TCP-keepalive?
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
У меня не долгоживущий. Мне как раз надо как можно быстрее увидеть на сервере что клиент отвалился
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Пока запрос не завершился - ресурс на сервере залочен и не может быть использован клиентом
источник

БС

Байт Словович in rannts
эээ, что то тут не так
источник

A🍊

Andrey 🍊 in rannts
Прислал Панина, политота закончилась. Надо будет ещё попробовать как-нибудь.
источник

БС

Байт Словович in rannts
политота закончилась на два часа раньше фотки панина..
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Клиент заливает файл. В случае обрыва, залитые данные сохраняются на сервере и клиент следующим запросом отправляет только оставшийся кусок файла. Но это всё нельзя делать в параллель. Т.е. файл сервер принимает только в один поток. Поэтому пока первый запрос на заливфку не завершится на сервере, второй слать нельзя - сервер вернёт ошибку про залоченый ресурс.
источник

ИК

Иван Кривошеев in rannts
Kirill (Cykooz) Kuzminykh
Пока запрос не завершился - ресурс на сервере залочен и не может быть использован клиентом
Вообщем если задача максимально быстро понять, что что-то пошло не так:
Timeout + пинги
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Делать таймаут совсем мелким тоже не желательно - клиент мобильный, там в принципе может быть медленный интернет.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Вот TCP--keepalive - это было бы вариантом, но осталось понять - можно ли его включить только настройкой сервера, или надо что бы и клиент эту настройку включал при создании соединения.
источник

БС

Байт Словович in rannts
я это уже не помню, помню что этот метод не работает. 😊  но тоже не помню почему.
источник

ИК

Иван Кривошеев in rannts
tcp-keepalive работает только когда у тебя по сокету никаких данных не ходит
источник

ИК

Иван Кривошеев in rannts
Т.е. открыл соединение и ничего не делаешь. Если у тебя ходят по нему какие-то днные, то эта схема уже не работает
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Ну вот тут как раз такая ситуация - клиент уже давно отвалился и ничего не шлёт в соединение. А сервер тупит - думает что просто клиент медленный
источник