Ajax 此聊天是否使用;“长轮询”;或;http流媒体";?

Ajax 此聊天是否使用;“长轮询”;或;http流媒体";?,ajax,comet,chat,irc,long-polling,Ajax,Comet,Chat,Irc,Long Polling,此聊天是使用“长轮询”还是“http流” 事情没那么简单。它使用,这是一个用Javascript和Java编写的完整IRC客户端。博客在 编辑: 我开始工作的第一部分是浏览器和服务器之间的通信。这是使用2个XMLHttpRequests完成的。第一个是简单地将数据从浏览器发送到服务器。它利用keep alive,最大限度地减少新连接 第二个XHR是“接收延迟轮询”XHR。它连接到服务器,服务器保持打开状态,直到有消息可用或超时过期。这一个也是保持活动的,因此下一个请求将通过同一个连接 您最终得到

此聊天是使用“长轮询”还是“http流”


事情没那么简单。它使用,这是一个用Javascript和Java编写的完整IRC客户端。博客在

编辑:

我开始工作的第一部分是浏览器和服务器之间的通信。这是使用2个XMLHttpRequests完成的。第一个是简单地将数据从浏览器发送到服务器。它利用keep alive,最大限度地减少新连接

第二个XHR是“接收延迟轮询”XHR。它连接到服务器,服务器保持打开状态,直到有消息可用或超时过期。这一个也是保持活动的,因此下一个请求将通过同一个连接

您最终得到的是与服务器的2个连接保持打开状态,其中包含数据包(本例中为json)和一些不时出现的http头。 为了确保服务器可以扩展,我使用nio用java编写了一个自定义Web服务器。它在一个线程中处理所有连接,正如我所说,它可以扩展到数万个连接

如果客户端请求一个新连接,它会向Web服务器发送一个请求,然后Web服务器连接,并开始代理等。在irc连接的情况下,它还会运行一个ident服务器,以便irc服务器能够识别各个浏览器。我查看了现有的框架等来做这类事情,但我重视学习它是如何工作的,并且认为我的用例可能足够具体,能够比一般框架优化更多


这不是一个编程问题,是吗?那么这就是“长轮询”了;)