2013-05-02 24 views
6

Closure istemci tarafı ve Tornado sunucusu tarafını kullanıyorum. Bir soket oluşturun:Tornado WebSocket bir dakikadan sonra kapanıyor

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

ve sonra açın:

this.socket.open(theSocketUrl) 

Her ince dahil mesajların doğru geçirilen çalışır. Bununla birlikte, dakikada bir kez (her 60 ila 61 saniyede bir), soket kapanır ve ardından yeniden açılır. Sunucu tarafında hata yok ve Kapanış soket hatası olayı çağrılmadı.

Kasırgaya günlüğe kaydetmeyi ekledim ve bir şey daha sonra soketin yöntemini on_close() yöntemini çağıran on_connection_close() gibi görünüyor. Close() yönteminin kendisi çağrılmıyor.

Bunun neden olabileceği hakkında bir fikriniz var mı?

cevap

3

Kasırga sunucunuzun önüne nginx veya başka bir ters proxy kullanıyor musunuz? Bunu proxy zaman aşımı sona erdiğinde ve nginx bağlantıyı kapattığında gördüğünüz davranışa neden olduğunda gördüm.

Bunu önlemek için proxy_send_timeout ve n122 proxy_read_timeout öğelerini değiştirebilirsiniz. Sadece proxy.conf'u düzenlediğinizde, onu ana nginx.conf'dan dahil ettiğinizden emin olun.