我正在使用 Closure 客户端和 Tornado 服务器端。我创建一个套接字:
this.socket = goog.net.WebSocket(true)
然后打开它:
this.socket.open(theSocketUrl)
一切正常,包括正确传递消息。但是,套接字每分钟一次(每 60 到 61 秒一次)关闭然后重新打开。服务器端没有错误,并且不会调用 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/