浏览器内聊天如何工作?

只是好奇。 在浏览器中聊天究竟如何工作? 通常,如果用户转到网页,他/她的浏览器就会请求页面内容。 服务器产生输出并将其发送到用户的计算机。 但是聊天的时候有点反过来(不完全是)。 这不是用户从某个服务器请求聊天消息,而是直接发送它的服务器。 现在,使用“普通”服务器实现起来非常简单,但服务器直接将其发送给浏览器的事情直接使我感到困惑。 发布消息部分全部清楚,很简单。 您只需将数据发布到服务器,例如ajax或其他东西。 但是另一台计算机如何“立即”知道已经写入了一条消息呢? 显然,服务器在写完之后立即将它发送给另一台计算机。 但不知何故,这不在我脑中计算。 在我的大脑中,浏览器只是要求事物,它不只是得到它们。 你到底怎么做?

以Gmail的谷歌谈话为例。 这是如何运作的? 它是如何实现的?

有一些推动技术 ,如彗星 ,但没有广泛实施。 大多数情况下,这是通过使用AJAX以小的间隔进行轮询并下载自从上次下载的消息以来可用的新消息来完成的。

看看彗星

轨道是实现这一点的好方法,它使用彗星方法。 你可以在这里find一个教程。

有人提到阿贾克斯投票,但彗星总是比投票更好 。 那么,这只是一个耸人听闻的标题,但彗星肯定是更合适的,并可以减less服务器端的压力,右后端。

它使用AJAX–在GMail用户浏览器上运行的客户端JavaScript发送和接收来自Google服务器的消息,并将它们写入浏览器窗口 – 不需要重新加载页面。

我开发了类似于Facebook聊天技术( http://chatsign.com )的浏览器聊天function。 它不是一个推技术,而是比投票更好的,它叫ajax长投票。

有关ajax长轮询的更多信息,您可以进行一些调查或访问: http : //techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

现代聊天应用程序使用SSE(服务器发送的事件:HTML5的function)发送新的消息给浏览器