实时会话如何工作(多个用户)?

时间:2015-10-09 01:40:09

标签: session chat

现在已经有一段时间了,我想我现在就问它了。我的问题是现场会议如何运作?例如,实时聊天会话,或JSfiddle.net上的实时多用户更新程序。两个项目如何立即更新?在实时聊天的情况下,它是否每秒都从AJAX更新到服务器?

很抱歉,如果我的问题被误解了,但我的问题很简单,现场会话如何与多个用户合作?

修改

Stack Overflow如何做到这一点?每次发生某些事情我都会收到通知,是每秒更新一次数据库以查看是否发生了某些事情,或者是否有更好(更有效)的方式来做这件事?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到。

人们现在最常见的做法是通过websockets。你可以谷歌那个术语并了解它。基本上,Web服务器会在决定时通过套接字通知您。

另一种方式是投票。人们过去常常在白天这样做。轮询几乎是愚蠢的方式:不断(或每隔一秒左右)向网络服务器发送ajax请求,询问是否有任何新内容。

另一个有趣的方法是发送一个get请求,该请求在一定时间内保持打开状态,即使在获得响应之后也是如此。它的功能类似于您打开到文件或连接的流,它保持打开状态,直到您关闭它(或直到其他一些条件)。我对此方法不太熟悉,但我知道Google云端硬盘使用它进行多用户文件编辑。只需打开两个会话到同一个Google云端硬盘文档并检查该页面即可。您将在控制台中看到,每次键入一个文本块时,它都会发送一个帖子,并且您始终至少有1个获取请求待处理。它会在某一时刻关闭,然后立即开始新的。

简而言之:Websockets,Polling,以及你称之为最后一种方法的任何东西。