flask-sock
WebSocket support for Flask
Installation
pip install flask-sock
Example
from flask import Flask, render_template
from flask_sock import Sock
app = Flask(__name__)
sock = Sock(app)
@sock.route('/echo')
def echo(sock):
while True:
data = sock.receive()
sock.send(data)
Running
To run an application that uses this package, you need to use a supported web server. At this time the supported servers are:
- Werkzeug (Flask development server)
- Gunicorn
Running with Werkzeug
Werkzeug supports WebSocket routing in version 2, which at this time hasn't been officially released. You can install a supported release candidate with the following command:
pip install "werkzeug>=2.0.0rc3"
To run your application use the normal method that you always use. Both the flask run
and app.run()
methods of starting the Flask application should work.
Running with Gunicorn
To use this package with Gunicorn you need to keep in mind that each active WebSocket client will use up a worker. The most practical way to run a WebSocket server is to use the --threads
option to allocate the number of clients that you need:
gunicorn -b :5000 --threads 100 module:app
It is also okay to use multiple workers, each with a number of allocated threads:
gunicorn -b :5000 --workers 4 --threads 100 module:app