Skip to content
This repository was archived by the owner on Apr 29, 2022. It is now read-only.
This repository was archived by the owner on Apr 29, 2022. It is now read-only.

Socket handshake error when using gunicorn #78

@arliber

Description

@arliber

I have a flask app that processes a web socket stream of audio from Twilio.

The app works fine without gunicorn but when I start it with gunicorn I get only the first message of the socket (connect) and an unsuccessful handshake. Here is how the app looks:

from flask import Flask
from flask_sockets import Sockets
from geventwebsocket.handler import WebSocketHandler
from gevent import pywsgi
...

app = Flask(__name__)
sockets = Sockets(app)
...
@sockets.route('/media')
def media(ws):
    ...
if __name__ == '__main__':
    server = pywsgi.WSGIServer(('', HTTP_SERVER_PORT), app, handler_class=WebSocketHandler)
    server.serve_forever()

When I start the app directly using python flaskapp.py it works ok.

When I start it using gunicorn by writing:

gunicorn -k flask_sockets.worker --bind 0.0.0.0:5055 --log-level=bug flaskapp:app

this is where the connection "hangs" and carries no further than the initial connection, apparently due to the handshake failing.

It's important to note that I haven't "gevent monkey patched" the code, but I'm not sure if it has anything to do with the problem.

Any idea will much be appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions