有没有办法让JavaScript连接保持HTTP连接?如何保持HTTP连接活着?
回答
简而言之,我认为JavaScript中长寿命http连接的概念实际上是围绕COMET的一种通信方式。这可以通过几种不同的方式来实现,但本质上涉及客户端(使用XmlHttp权力)立即从服务器请求数据,并且服务器拒绝响应,直到某个事件触发为止。一旦收到这个响应,客户立即发出另一个请求(这将再次挂起在服务器端,直到需要发送)。这模拟服务器推送,但实际上只不过是以聪明的方式使用的延迟响应。在最坏的情况下,可能会有相当高的延迟(即2条消息需要发送,所以周期必须重复两次,所有成本都涉及),但通常情况下,如果消息传输率较低,时间推移。
为这种通信实现服务器端不是微不足道的,并且需要大量的异步通信,并发问题等。编写一个可以在自己的线程上支持几百个用户的实现是相当容易的,但要扩展到数千个需要更多考虑的方法。
我注意到最后的答案是在2009年给出的。哦,我怎么记得那些日子。但自那时以来发生了很多好事,所以我会添加这个只是为了让人们知道要寻找什么。 HTTP 1.0提供了一个“保持活动”请求属性,这意味着连接应该为进一步的请求而维护。在HTTP 1.1中,这成为默认值。如果你不想重复使用连接(如果你想要更好的话),你实际上必须选择退出。
“WebSockets”的新标准实际上为您提供了全双工持久连接。所有最新版本的流行浏览器都支持WebSockets,如果您安装Google Chrome Framework(即Google软件实际上在做这项工作),您甚至可以在MSIE中使用它们。微软表示IE在第10版中支持它,但我自己并没有尝试过。然后你需要的是连接到的东西,如http://highlevellogic.blogspot.se/2011/09/websocket-server-demonstration_26.html
- 1. 保持连接活着吗?
- 2. 保持WebSocket连接活着
- 3. 保持活着的Rtsp连接
- 4. 保持Java蓝牙连接活着
- 5. Python的保持插座连接活着
- 6. HTTP响应连接保持活动
- 7. 如何保持NSTimer活着?
- 8. 如何保持一个MySQL连接活着libodbc.so
- 9. 如何在java中保持连接活着
- 10. Boost asio:如何保持客户端连接活着?
- 11. 如何在使用webrequest时保持连接活着?
- 12. ePOS2 SDK:如何保持与打印机的连接活着?
- 13. TCP服务器/客户端如何保持连接活着?
- 14. PHP MYSQL:如何保持变量活着,直到连接结束
- 15. C#/ MongoDB:我如何保持连接活着?
- 16. 如何从Visual Fox Pro保持mysql连接活着
- 17. PHP:连接:保持活着问题读取套接字数据
- 18. 保持谷歌Cast接收活着和/或发送连接
- 19. HTTP套接字保持活着不起作用
- 20. 如何测试HTTP保持活着实际上正在工作
- 21. HTTP代理服务器保持活动连接支持
- 22. 如何确保或保持套接字活着?
- 23. 如何保持活着请求
- 24. apache上的红宝石不保持连接活着
- 25. PHP保持一个PDO ATTR_PERSISTENT连接活着
- 26. 保持断开连接后RDP会话活着
- 27. “连接:保持活着,关闭”作为响应头
- 28. CFNetwork持久连接(保持活力)
- 29. 如何在HANA Studio中保持数据库连接始终活着?
- 30. 如何保持连接线程活着? (我需要使用守护进程吗?)
你究竟是什么意思?你想模拟服务器推送? – Myles 2009-11-08 22:39:32
最好告诉我们你到底想要解决什么问题。 – spender 2009-11-08 22:43:54
保持连接处于活动状态以获得更快的响应。我听说这种技术被用在浏览器游戏中,几乎有实时行为。 – powtac 2009-11-08 22:44:12