2012-02-05 5 views
0

Я следую этому руководству: http://www.stephendiehl.com/?p=309 описывает, как запустить сервер gevent pywsgi, обслуживающий Django с socketio за интерфейсом nginx.Django Socketio Nginx proxy & session cookie issue

Как сказано в этом уроке, Nginx не поддерживает websocket, если не используется прокси-модуль tcp. Этот прокси-модуль не поддерживает использование одного и того же порта для socketio и классической сервировки, от того, что я понял конфигурации выглядеть:

Nginx слушать порт 80

Nginx TCP прокси прослушивает порт 7000

Все перенаправляются на порт 8000

Проблема: полученный socketio запрос не включает в себя Джанго печенье, содержащее идентификатор сеанса, так что нет никакой информации о запрашивающего пользователя, на мой взгляд Джанго.

Я предполагаю, что это вызвано тем фактом, что запрос сделан на другой порт (7000), заставляя браузер идентифицировать запрос как междоменный?

Каким будет самый чистый способ включения файла cookie django в запрос?

ответ

1

Большинство ответов в this question, кажется, указывают, что порт не имеет значения.

Также проверено, и предположительно, WebSockets рассматривается как HTTP, поэтому HTTPOnly-файлы cookie все равно должны быть отправлены.

SocketIO похоже использует пользовательский диспетчер сеансов для отслеживания пользователей. Может быть, попытаться связать это?

+0

Здравствуйте, спасибо за ответ. Теперь я верю, что это скорее протокол, чем порт (как вы только что сказали). Мне не удавалось связать две сессии, поэтому я возвращаюсь к длительному опросу. – Ashe

 Смежные вопросы

  • Нет связанных вопросов^_^