Итак, я пытаюсь развернуть свое чат-приложение на Heroku. Я видел несколько ответов, но ни один из них не с flask -socketio, и они с решениями, которые вы не можете сделать с flask -socketio. Я выполнил шаги здесь . Кроме того, вы можете указать ошибку в журналах
2020-07-09T14:55:03.811700+00:00 app[web.1]: Traceback (most recent call last):
2020-07-09T14:55:03.811746+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/eventlet/hubs/hub.py", line 461, in fire_timers
2020-07-09T14:55:03.811747+00:00 app[web.1]: timer()
2020-07-09T14:55:03.811751+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/eventlet/hubs/timer.py", line 59, in __call__
2020-07-09T14:55:03.811752+00:00 app[web.1]: cb(*args, **kw)
2020-07-09T14:55:03.811754+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/eventlet/semaphore.py", line 147, in _do_acquire
2020-07-09T14:55:03.811754+00:00 app[web.1]: waiter.switch()
2020-07-09T14:55:03.811783+00:00 app[web.1]: File "src/gevent/greenlet.py", line 858, in gevent._gevent_cgreenlet.Greenlet.run
2020-07-09T14:55:03.811811+00:00 app[web.1]: File "src/gevent/greenlet.py", line 829, in gevent._gevent_cgreenlet.Greenlet._Greenlet__report_result
2020-07-09T14:55:03.811814+00:00 app[web.1]: File "src/gevent/_gevent_cgreenlet.pxd", line 45, in gevent._gevent_cgreenlet.get_my_hub
2020-07-09T14:55:03.811863+00:00 app[web.1]: TypeError: Cannot convert greenlet.greenlet to gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop
2020-07-09T14:55:03.812531+00:00 heroku[router]: at=info method=POST path="/socket.io/?EIO=3&transport=polling&t=NCq5C0_&sid=59a6f168828134cc39e7314cf4639909f" host=chat-py.herokuapp.com request_id=9c21cf77-3a08-44b9-917b-da87c2dad3fc fwd="176.229.186.130" dyno=web.1 connect=2ms service=7ms status=200 bytes=202 protocol=http
2020-07-09T14:55:33.809904+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/socket.io/?EIO=3&transport=polling&t=NCq5C13&sid=59a63f16888134cc39e7314cf4639909f" host=chat-py.herokuapp.com request_id=5ca46303-e131-4a64-844a-0070916051dc fwd="176.229.186.130" dyno=web.1 connect=1ms service=30000ms status=503 bytes=0 protocol=http
2020-07-09T14:55:33.920874+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/socket.io/?EIO=3&transport=websocket&sid=59a6f16888234cc39e7314cf4639909f" host=chat-py.herokuapp.com request_id=87ec71b4-c64a-4e3a-bf31-c6fda30eda3f2 fwd="176.229.186.130" dyno=web.1 connect=2ms service=30000ms status=503 bytes=0 protocol=http
Я вижу, что сайт работает и работает, но по какой-то причине возникла проблема с подключением к socket-io на вкладке сети (вы можете ' t отправлять сообщения, и это сработало на localhost).
вкладка сети
Pipfile:
flask = "*"
flask-sqlalchemy = "*"
flask-socketio = "*"
flask-login = "*"
sqlalchemy = "*"
gunicorn = "*"
psycopg2 = "*"
eventlet = "*"
gevent-websocket = "*"
Procfile:
web: gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 app:app
(the server name is app)
connecting to socketio:
начало кода внешнего интерфейса (JS):
$(document).ready(function(){
var socket = io("http://chat-py.herokuapp.com:" + location.port);
.....
Журналы Heroku
remote: ! Python has released a security update! Please consider upgrading to python-3.8.3
remote: Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> No change in requirements detected, installing from cache
remote: -----> Installing dependencies with Pipenv 2018.5.18…
remote: Installing dependencies from Pipfile.lock (570f04)…
remote: Ignoring cffi: markers 'platform_python_implementation == "CPython" and sys_platform == "win32"' don't match your environment
remote: You are using pip version 9.0.2, however version 20.1.1 is available.
remote: You should consider upgrading via the 'pip install --upgrade pip' command.
ОБНОВЛЕНО вкладка сети:
после использования опции cors_allowed_origins конфигурация У меня осталась одна ошибка (я почти уверен, что причина ошибки в журналах): введите описание изображения здесь