如何防止我永远的框架关闭对我的连接
How to prevent my forever-frame from closing the connection on me?
因此,我使用一个永久帧将数据从Tornado流式传输到JavaScript客户端应用程序,我发现JavaScript客户端偶尔会停止接收数据。我已经实现了一个心跳方法,当错过心跳时,客户端会更改帧的URL以重新打开连接,但这感觉像是一个尴尬的破解——当连接刷新时,应用程序UI中必须进行一定数量的设置和拆卸。我真的更希望它可以是整个使用会话的一个持久连接。
有时这是几分钟一次,有时它似乎会进入一个循环,每五秒钟发生一次。我的浏览器是Firefox和Chrome。
是什么原因导致了这个问题?我真的只需要一些关于调试起点的想法——我应该关注延迟、数据泛滥、连接不良吗?问题更可能出现在Tornado端还是JavaScript端?或者,我会更好地投入精力,让JavaScript应用程序能够更优雅地重新初始化自己吗?
啊哈。我想明白了。Tornado在并发性方面做得很差。问题是,我的逻辑是从多个线程调用长寿命的RequestHandler实例(由入站RPC触发),当它们发生冲突时,Tornado会异常并关闭连接。
修复方法是使用add_callback:将我与IOLoop线程上的RequestHandler实例的交互排队
tortory.ioloop.ioloop.instance().add_callback(do_stuff)
相关文章:
- 连接变量,在我的情况下背景样式损坏
- 我应该连接/缩小已经缩小的JS/CSS吗?如果是,如何
- Webrtc和socket.io:createanswer()总是有一个错误.为什么?我的代码连接了两个对等体,但其中只
- 如何将我的Ionic应用程序与我的java服务器(Spring MVC)连接
- 我的 base64 连接字符串有 = 字符.如何摆脱它们
- 如何将相同的MySQL连接用于我的整个Node.js应用程序
- 如何使用socket IO检查有多少参与者连接到我的聊天室
- 如何将sql服务器连接到我的Javascript游戏
- 我需要在停止后断开振荡器AudioNode的连接吗
- 为什么可以't我得到连接客户端's的ip地址在我的服务器上运行Node.js+Openshift托管的W
- 将.schie Javascript函数连接到我的HTML时出现问题
- 从我的web应用程序连接到本地sqlexpress数据库
- Facebook已连接但我的用户是一个空对象
- 我如何通过JavaScript连接到我的PHP程序所在的服务器
- 无法从我的 Angular2 应用程序中连接到我的 WebSocket
- 将我的整个应用程序连接成一个 HTML、JS 和 CSS 文件
- 防止与我的 Web 应用程序建立多个连接
- 节点.js将我的模块连接在一起而不会变得一团糟
- 使用 strophe attach() 而不是 connect() 不起作用,除非我两次触发我的连接回调
- 如何防止我永远的框架关闭对我的连接