LINUX.ORG.RU

Как задеплоить в uwsgi Flask, SocketIO, eventlet

 


0

1

Есть вот такое, работающее как есть

sio = socketio.Server()

....

socket_que = Queue()

def background_thread():
    global socket_que
    while True:
        message = socket_que.get()
        sio.emit('message', message,
                        namespace='/logs')
        sio.sleep(0)

socket_app      = socketio.Middleware(sio, flask_app)

scada           = ScadaWood()
scada.init(flask_app, session, socket_que, 'logica', '/logs')


sio.start_background_task( background_thread )

if __name__ == '__main__':
    eventlet.wsgi.server(eventlet.listen(('', 8000)), socket_app)

нужно это же запустить в продакшене и наверно через nginx+uwsgi

что-то я не догоняю, что тут в конце запускает и как переключить на uwsgi

★★★

https://flask-socketio.readthedocs.io/en/latest/

Поищи uWSGI. Суть там в командной строке

$ uwsgi --http :5000 --gevent 1000 --http-websockets --master --wsgi-file app.py --callable app

--callable app я так понял обозначает Flask обьект из app.py

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

ну это то понятно, тут ничего нового

но вот кто тогда запустит socket_app и вот эту фигню

eventlet.wsgi.server(eventlet.listen((", 8000)), socket_app)

тут же получается запускается отдельный сервер, который слушает/пишет в веб-сокет

fMad ★★★
() автор топика
Ответ на: комментарий от vertexua

не получается

flask приложение запускается как обычно, а где сокетсервер не понятно

GET /socket.io/?EIO=3&transport=polling&t=Lh8CF4r => generated 233 bytes in 11 msecs (HTTP/1.1 404)

раньше там делал отдельный location в nginx

а сейчас не понимаю где он работает

fMad ★★★
() автор топика
Последнее исправление: fMad (всего исправлений: 1)

А вообще на твоем месте я бы просто настроил прокси_пасс с 8000 порта и забил на uwsgi

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.