2013-05-02 3 views
6

Я использую Clorure на стороне клиента и сервера Tornado. Я создаю сокет:Tornado WebSocket закрывается раз в минуту

this.socket = goog.net.WebSocket(true) 

, а затем открыть его:

this.socket.open(theSocketUrl) 

Каждый работает штраф в том числе сообщений, передаваемых правильно. Однако раз в минуту (раз в 60-61 секунд) гнездо закрывается, а затем снова открывается. Ошибок на сервере нет, и событие ошибки сокета Closure не вызвано.

Я добавил регистрацию в торнадо, и что-то вроде бы вызывает on_connection_close(), который затем вызывает метод сокета on_close(). Сам метод close() не вызван.

Любая идея, почему это может произойти?

ответ

3

Вы используете nginx или какой-либо другой обратный прокси-сервер перед сервером торнадо? Я видел это, когда истекает время прокси-сервера, а затем nginx закрывает соединение, вызывая поведение, которое вы видите.

Вы можете изменить proxy_send_timeout и proxy_read_timeout в nginx, чтобы предотвратить это. Просто убедитесь, что при редактировании proxy.conf вы включаете его из основного nginx.conf.

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