Как запустить сервер socket io с помощью службы gunicorn
Я использую службу socket.io в моем приложении Django, и я хочу создать одну службу gunicorn, которая будет отвечать за запуск службы socket.io.
Ниже представлен код сервера socket io
Имя файла: server.py
from wsgi import application
from server_events import sio
app = socketio.WSGIApp(sio, application)
class Command(BaseCommand):
help = 'Start the server'
def handle(self, *args, **options):
eventlet.wsgi.server(eventlet.listen(('127.0.0.1', 8001)), app)
Ниже приведен фактический код сервера с connect, disconnect и одним пользовательским методом
Имя файла: server_events.py
from wsgi import application
sio = socketio.Server(logger=True)
app = socketio.WSGIApp(sio, application)
@sio.event
def connected(sid, environ):
print("Server connected with sid: {}".format(sid))
@sio.event
def disconnect(sid):
print("Server disconnected with sid: {}".format(sid))
@sio.event
def run_bots(sid):
print("func executed")
**# Here custom logic**
Когда я ввожу команду python manage.py server в локальном режиме, она работает нормально, но на рабочем сервере я не хочу вводить команду python manage.py server. Я хочу создать одну службу Gunicorn и дать некоторые инструкции этой службе, чтобы, когда я введу команду Gunicorn service, она автоматически запустила сервер сокетов IO, как и команда runserver.
Я попытался реализовать эти вещи, создав служебный файл Gunicorn, но это не сработало.
socket-gunicorn.service
[Unit]
Description=SocketIO server
After=network.target
[Service]
Type=simple
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/crypto-trading-bot
ExecStart=/home/ubuntu/crypto-trading-bot/venv/bin/python3 manage.py server >> /home/ubuntu/crypto-trading-bot/socketIO.log 2>&1
Restart=always
[Install]
WantedBy=multi-user.target
Я новичок в серверных вещах, поэтому любая помощь будет полезна.
Спасибо