我正在使用Closure客户端和Tornado服务器端。我创建一个套接字:
this.socket = goog.net.WebSocket(true)
然后打开它:
this.socket.open(theSocketUrl)
一切正常,包括正确传递的消息。但是,每分钟一次(每60到61秒一次), socket 将关闭,然后重新打开。服务器端没有错误,并且不会调用Closure套接字错误事件。
我在 Tornado 中添加了日志记录,似乎正在调用on_connection_close(),然后调用了套接字的方法on_close()。 close()方法本身不会被调用。
知道为什么会这样吗?
最佳答案
您在 Tornado 服务器之前使用nginx或其他反向代理吗?我已经看到这种情况是在代理超时结束后发生的,然后nginx关闭连接,从而导致您看到的行为。
您可以在nginx中更改proxy_send_timeout
和proxy_read_timeout
来防止这种情况。只要确保在编辑proxy.conf
时,就从主nginx.conf
中包括了它即可。
关于websocket - Tornado WebSocket每分钟关闭一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16343013/