{"action":"created","issue":{"url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO/issues/267","repository_url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO","labels_url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO/issues/267/labels{/name}","comments_url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO/issues/267/comments","events_url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO/issues/267/events","html_url":"https://github.com/miguelgrinberg/Flask-SocketIO/issues/267","id":155885055,"number":267,"title":"High performance website with socketIO possible?","user":{"login":"kramer65","id":596581,"avatar_url":"https://avatars.githubusercontent.com/u/596581?v=3","gravatar_id":"","url":"https://api.github.com/users/kramer65","html_url":"https://github.com/kramer65","followers_url":"https://api.github.com/users/kramer65/followers","following_url":"https://api.github.com/users/kramer65/following{/other_user}","gists_url":"https://api.github.com/users/kramer65/gists{/gist_id}","starred_url":"https://api.github.com/users/kramer65/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kramer65/subscriptions","organizations_url":"https://api.github.com/users/kramer65/orgs","repos_url":"https://api.github.com/users/kramer65/repos","events_url":"https://api.github.com/users/kramer65/events{/privacy}","received_events_url":"https://api.github.com/users/kramer65/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2016-05-20T04:31:08Z","updated_at":"2016-08-08T21:10:04Z","closed_at":null,"body":"I've recently deployed a flask website for a customer with Flask-socketIO. I first wanted to deloy with uWSGI, but since it [doesn't work well](http://flask-socketio.readthedocs.io/en/latest/#uwsgi-web-server) with Flask-SocketIO the site is now running on Gunicorn. According to the docs Gunicorn should [not be used with more than one worker](http://flask-socketio.readthedocs.io/en/latest/#gunicorn-web-server), but that is not a problem, since this is a website with a low load.\r\n\r\nWe are now looking into a new project, which consists of a backend system and a website (with websockets) which will likely run under quite a high load. Since uWSGI can't be used and Gunicorn is limited to one worker, is Flask-SocketIO prepared for high-volume websites at all? \r\n\r\nI didn't run any benchmarks, but I'm just wondering about this before we make a decision which kills us at a later stage."},"comment":{"url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO/issues/comments/238378443","html_url":"https://github.com/miguelgrinberg/Flask-SocketIO/issues/267#issuecomment-238378443","issue_url":"https://api.github.com/repos/miguelgrinberg/Flask-SocketIO/issues/267","id":238378443,"user":{"login":"miguelgrinberg","id":2715854,"avatar_url":"https://avatars.githubusercontent.com/u/2715854?v=3","gravatar_id":"","url":"https://api.github.com/users/miguelgrinberg","html_url":"https://github.com/miguelgrinberg","followers_url":"https://api.github.com/users/miguelgrinberg/followers","following_url":"https://api.github.com/users/miguelgrinberg/following{/other_user}","gists_url":"https://api.github.com/users/miguelgrinberg/gists{/gist_id}","starred_url":"https://api.github.com/users/miguelgrinberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miguelgrinberg/subscriptions","organizations_url":"https://api.github.com/users/miguelgrinberg/orgs","repos_url":"https://api.github.com/users/miguelgrinberg/repos","events_url":"https://api.github.com/users/miguelgrinberg/events{/privacy}","received_events_url":"https://api.github.com/users/miguelgrinberg/received_events","type":"User","site_admin":false},"created_at":"2016-08-08T21:10:04Z","updated_at":"2016-08-08T21:10:04Z","body":"The problem is that many of the functions in the Python standard library are not compatible with eventlet. Eventlet provides equivalent functions, but for code that was not written specifically for eventlet, you have to monkey patch the Python library so that the eventlet functions are called.\r\n\r\nIn your main script, at the top, before you do any imports, run the following:\r\n\r\n    import eventlet\r\n    eventlet.monkey_path()\r\n\r\nThat should take care of it. If you want more details, see http://eventlet.net/doc/patching.html."}}
{"actor":{"display_login":"miguelgrinberg"}}