1

I want to send socket from asynchronous class in my Flask project. But when I send it, it takes enormous time before it arrives to JavaScript. I am sending it as:

socket_io.emit("event_name", {"foo": "bar"}, broadcast=True, namespace="/com")

App with socketio is initialised as:

app = Flask(__name__, template_folder="templates", static_folder="static", static_url_path="/static")
socketio = SocketIO(app=app, cookie="cookie_name", async_mode=None)

And it is started by this command:

socketio.run(app=app, host="0.0.0.0", port=5000, log_output=False)

My Python library versions are:

# Python == 3.8.5
Flask==1.1.2
Flask-SocketIO==5.0.1
python-engineio==4.0.0
python-socketio==5.04
gevent==20.12.1
gevent-websocket==0.10.1

JavaScript SocketIO: v3.0.4

When I send socket normally by emit command in socket_io handler, it works ok. But when I want to send same socket from external process, it takes a long time.

Does anyone know, how can I solve this problem? Thank you

1 Answer 1

0

The problem was with monkey patching and 32-bit Python3. I must install 64-bit Python3 and then add this at the first line:

import gevent.monkey; gevent.monkey.patch_all()
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.