websocket - Tornado WebSocket 每分钟关闭一次

标签 websocket tornado google-closure

我正在使用 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_timeoutproxy_read_timeout 来防止这种情况发生。只需确保在编辑 proxy.conf 时,将其包含在主 nginx.conf 中即可。

关于websocket - Tornado WebSocket 每分钟关闭一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16343013/

相关文章:

angularjs - Golang 一请求多响应

javascript - 使用 Plovr 编译模块

javascript - 将原型(prototype)设置为对象字面量与向原型(prototype)添加字段

google-closure - 在自定义对象上实现 EventTarget

node.js - Nestjs @SubscribeMessage UnhandledPromiseRejectionWarning : TypeError: this. contextUtils.getContextFactory 不是函数

android - 将 OpenCV::Mat 图像发送到 websocket Java 客户端

google-app-engine - 如何在 GAE 之上运行 WebSocket 服务器?

python - Tornado 异步调用一个函数

apache - 如何使用apache重定向到docker容器

python - 如何将 Tornado 与线程池一起使用?