此聊天是使用“长民意调查”或“ HTTP流”的?

http://go-mono.com/moonlight/chat.aspx

有帮助吗?

解决方案

这不是那么简单。它用 http://www.mibbit.com/chat, ,这是用JavaScript和Java编写的完整IRC客户端。博客 http://blog.mibbit.com/.

编辑: 这是你的答案.

我工作的第一部分是浏览器和服务器之间的通信。这是使用2个XMLHTTPREQUESTS完成的。第一个只是将数据从浏览器发送到服务器。它利用保持呈阳性,以最大程度地减少新连接。

第二个XHR是“接收懒惰的民意调查”。它连接到服务器,服务器将其保持打开状态,直到有可用消息或超时到期为止。这也是静止的,因此下一个请求下降了相同的连接。

您最终得到的是与服务器开放的2个连接,并带有数据包(在这种情况下为JSON)和一些HTTP标头。为了确保服务器扩展,我使用Nio在Java中编写了一个自定义网络服务器。它处理单个线程中的所有连接,正如我所说,将其缩放到成千上万的连接。

如果客户端请求新连接,它将向Web服务器发送请求,然后将其连接并开始代理等。它在IRC连接的情况下还运行了身份服务器,以便IRC服务器可以识别单个浏览器。我研究了现有的框架等来做这种事情,但是我很重视学习一切的工作原理,并认为我的用例可能足够具体,足以比一般框架能够优化更多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top