websockets в Bottle
Як подружити мікрофреймворк Bottle з веб-сокетами?
Будемо розглядати зв’язку nginx+gunicorn+bottle.
Підтримка перемикання протоколу, який необхідний для встановлення веб-сокет з’єднання, реалізована в nginx, починаючи з версії 1.3.13
. Тому перевірте свою версію nginx і за необхідності оновіть його
1 | $ nginx -v |
Далі дещо змінюємо nginx-конфігурацію для вашого додатку
1 | location /websocket { |
Тепер встановлюємо gevent-websocket - воркер, що буде використовуватися gunicorn-ом для забезпечення підтримки веб-сокетів в bottle
1 | $ pip install gevent-websocket |
В файлі налаштувань gunicorn додаємо рядок (повний файл налаштувань в цій статті)
1 | worker_class = 'geventwebsocket.gunicorn.workers.GeventWebSocketWorker' |
Додаємо функцію-обробник в bottle-коді
1 |
|
І вбудовуємо в сторінку код, який буде спілкуватися з даним обробником
1 | var ws = new WebSocket("ws://localhost:8080/websocket"); |
Перезапускаємо все
1 | $ supervisorctl projectname restart |
Заходимо на сторінку і бачимо інформаційне віконце з вашим текстом!