Время ответа по частям, автозакрытие по трафику и честные ошибки
новоеулучшеноисправленоклиентсервер
DevTools показывает, где теряется время: на сервере, в туннеле или в приложении. Автозакрытие смотрит на трафик, а консольный клиент не молчит об ошибках.
Страница тормозит, а виноват туннель или ваш код? Теперь это видно в браузере. Заодно мы прошлись по консольному клиенту и исправили места, где он зависал, молчал об ошибке или делал не то, что просили.
Новое
- У ответов через HTTP-туннель появился заголовок
Server-Timing. В DevTools, на вкладке Network → Timing, время делится на три части:fxt-edge(сервер fxTunnel),fxt-tunnel(путь до вашей машины) иfxt-app(ваше приложение, оценка). Если туннель измерить не удалось, он показан вместе с приложением в строкеfxt-upstream. Для своих доменов заголовок не добавляется.
Улучшено
fxtunnel upсообщает, если фоновый режим не запустился, и показывает журнал из~/.fxtunnel/daemon.log. Когда фоновый режим уже работает,fxtunnel http 3000добавляет к нему туннель и печатает его адрес. Если сервер отказал, команда называет причину и завершается с кодом 1. Добавленные так туннели возвращаются после переподключения. Подробнее о фоновом режиме в статье про fxtunnel up.- Флаги важнее переменных окружения, те важнее файла конфигурации, а файл важнее сохранённого входа. Раньше сохранённый вход перебивал сервер и токен из
fxtunnel.yaml. Сохранённый токен уходит только на тот сервер, для которого его сохранили. Для своего сервера без авторизацииfxtunnel loginбольше не нужен. - Ошибки стали понятнее. Вместо всей справки клиент печатает саму ошибку. Неверный
--log-levelотклоняется сразу, а не превращается молча вinfo. Командыdomainsждут ответа сервера не дольше 30 секунд.--remote-portпроверяется до подключения: подходят 0 (выбрать автоматически) и 1–65535.
Исправлено
--auto-closeсчитал простаивающим туннель, где шло одно долгое TCP-соединение, и любой UDP-туннель, а с инспектором мог закрыть туннель посреди длинного ответа. Теперь туннель живёт, пока по нему идут данные в любую сторону. Временные туннели разбираем в статье про --auto-close и --max-lifetime.- В UDP-туннеле с несколькими отправителями ответы уходили тому, кто написал последним. Теперь каждый получает свои, так что на игровой сервер могут зайти несколько игроков сразу.
- Если сервер отказывал в туннеле, клиент ждал 30 секунд и писал, что всё запущено. Теперь ошибка видна сразу. Отклонённый токен клиент больше не пробует бесконечно: он останавливается и просит войти заново. Туннели, закрытые по
--auto-closeили--max-lifetime, после переподключения не возвращаются. fxtunnel http 3000и другие быстрые команды читают только файл из-cили./fxtunnel.yaml. Постороннийclient.yamlв папке или сломанная запись о другом туннеле им больше не мешают.fxtunnel initв режиме добавления сохраняет остальные разделы и комментарии файла, а не переписывает его целиком.fxtunnel domains custom add --helpбольше не падает. У--targetтеперь нет короткой формы:-tозначает--token.
Обновить клиент: fxtunnel update