Проблема с веб-сокетами - гибкий движок приложений

За последние несколько дней я получаю следующую ошибку, когда пытаюсь запустить пример приложения python websocket flexible-app-engine (https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/flexible/websockets). Раньше он работал, но теперь, когда я бегу, я вижу ошибку ниже.

Я не вижу этой проблемы, когда я запускаю локально с помощью - gunicorn -b 127.0.0.1:8080 -k flask_sockets.worker main: app.

Я вижу эту проблему только при развертывании в облаке Google.

  File "/env/lib/python3.6/site-packages/gevent/pywsgi.py", line 999, in handle_one_response
    self.run_application()
  File "/env/lib/python3.6/site-packages/geventwebsocket/handler.py", line 75, in run_application
    self.run_websocket()
  File "/env/lib/python3.6/site-packages/geventwebsocket/handler.py", line 52, in run_websocket
    list(self.application(self.environ, lambda s, h, e=None: []))
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/env/lib/python3.6/site-packages/flask_sockets.py", line 40, in __call__
    handler, values = adapter.match()
  File "/env/lib/python3.6/site-packages/werkzeug/routing.py", line 2026, in match
    raise WebsocketMismatch()
werkzeug.routing.WebsocketMismatch: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.

{
textPayload: "2021-05-14T22:33:23Z {'REMOTE_ADDR': '172.17.0.4', 'REMOTE_PORT': '23300', 'HTTP_HOST': 'malware-sandboxing.uc.r.appspot.com', (hidden keys: 39)} failed with WebsocketMismatch
"
insertId: "nn71n3jmo5u1ymw9s"
resource: {2}
timestamp: "2021-05-14T22:33:23Z"
labels: {4}
logName: "projects/malware-sandboxing/logs/appengine.googleapis.com%2Fstderr"
receiveTimestamp: "2021-05-14T22:33:26.911503907Z"
}

Пожалуйста помоги


person user673272    schedule 15.05.2021    source источник


Ответы (1)


Werkzeug выпустил версию 2.0.0, которая также сломала меня.

https://github.com/pallets/werkzeug/releases/tag/2.0.0

Добавлен Werkzeug==1.0.1 в начало файла требований, исправил мою проблему.

person Dario Clément    schedule 17.05.2021
comment
Благодарю за ваш ответ. - person user673272; 18.05.2021
comment
после 3 дней поиска решения это действительно сработало. благодаря. мне пришлось поместить его в этом порядке в requirements.txt файл для моего приложения на Python: Werkzeug==1.0.1 Flask - person ulkas; 22.06.2021