eventlet is the best performant option, with support for long-polling
and WebSocket transports.
gevent is supported in a number of different configurations. The
long-polling transport is fully supported with the gevent package, but
unlike eventlet, gevent does not have native WebSocket support. To add
support for WebSocket there are currently two options. The
gevent-websocket package adds WebSocket support to gevent, but
unfortunately this package is current only available for Python 2. The
other alternative is to use the uWSGI web server, which comes with
WebSocket functionality. The use of gevent is also a performant
option, but slightly lower than eventlet.
The Flask development server based on Werkzeug can be used as well,
with the caveat that it lacks the performance of the other two
options, so it should only be used to simplify the development
This option only supports the long-polling transport.