Задать вопрос
@diman40
Python junior

FastAPI + uvicorn: как перехватить исключение в процессе websocket handshake?

Добрый день.
Не могу найти вариант перехвата исключения при websocket handshake.
Проект с реализацией API на FastAPI, работает с программно запускаемым uvicorn ( uvicorn.run() )
Беда вылезает, когда подключается клиент с некорректной кукой - не ascii-символы в теле куки.
Сервер выдает в консоль исключение и на какое то время перестает обслуживать запросы.

Хотелось бы перехватить это исключение, отлогировать ip клиента и продолжить работу, но не могу найти способ перехватить ошибку.
Исключение выдает именно uvicorn, до fastapi дело еще даже не дошло...
  • Вопрос задан
  • 484 просмотра
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Andrey_Dolg
Так как не владею в нужной мере uvicorn то единственное что могу посоветовать это искать фрагмент import'a websockets/server.py в инициализацию сервера либы uvicorn. и пробросить изменения метода process_request класса, который описан в websockets_impl.py. Ну или модифицировать код либы не через наследование тогда это конечно костыль (=.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽