Я пытаюсь использовать push-сообщение с моим приложением Django.Из всех различных решений, которые я видел, django-socketio казалось наиболее простым в реализации, и я запустил его при запуске сервера через manage.py.Однако когда дело доходит до производства, я бы хотел, чтобы его обслуживали через Apache.В прошлом я делал это с помощью wsgi, но django-socketio не очень хорошо работает со стандартным сценарием wsgi.Есть ли что-то простое, что я могу просто изменить в моем django.wsgi, который позволяет apache делать правильные вещи?Если нет, то каков будет предложенный способ справиться с этим?
РЕДАКТИРОВАТЬ: Вот сценарий WSGI, который я обычно использовал (без какого-либо push-сервера), плюс немного более подробного объяснения.
sys.stdout = sys.stderr
- это просто перенаправление любых тестовых print
операторов в журнал ошибок apache.Проблема в том, что, когда я использую это, я получаю сообщение об ошибке, сообщающее, что request.environ
не имеет ключа "socketio" или "DJANGO_SOCKETIO_PORT".Я могу достаточно легко добавить DJANGO_SOCKETIO_PORT (os.environ['DJANGO_SOCKETIO_PORT']="9000"
), но из того, что я могу сказать, request.environ['socketio']
настроен на экземпляр SocketIOProtocol
где-то во внутренностях django-socketio.Кроме того, после просмотра команды, которую django-socketio добавил в manage.py, я заметил, что она создает экземпляр SocketIOServer
и вызывает для него serve_forever
, но я понятия не имею, где поместить это в мой код.Надеюсь, это поможет увидеть, что я пытаюсь сделать.