这件事我已经想了一段时间了,我想我现在是在问这个问题。我的问题是现场会议是如何工作的?例如,一个实时聊天会话,或JSfiddle.net上的多用户实时更新程序。这两个项目如何立即更新?在实时聊天的情况下,它是否每秒钟从AJAX更新到服务器?
如果我的问题被误解了,很抱歉,但我的问题很简单,如何与多个用户一起工作?
编辑
堆栈溢出是如何实现的?每次有事情发生时,我都会收到通知,是每秒钟更新一次数据库,看看是否发生了什么,还是有更好(更有效)的方法来完成这个任务?
发布于 2015-10-09 01:49:53
有几种方法可以做到。
现在人们最常见的做法是通过websockets。你可以在谷歌上搜索并了解它。基本上,无论何时,you服务器都会通过套接字通知您。
另一种方式是投票。以前人们都是这样做的。轮询几乎是一种愚蠢的方式:不断(或每隔一秒左右)向way服务器发送ajax请求,询问是否有任何新内容。
另一种有趣的方法是发送一个get请求,即使在得到响应之后,get请求也会打开一定时间。它的功能类似于打开到文件或连接的流,它一直打开直到关闭它(或者直到其他条件)。我不太熟悉这个方法,但我知道Google使用它进行多用户文件编辑。只需打开两个会话到相同的Google文档并检查页面。您将在控制台中看到,每次键入一个文本块时,它都会发送一个post,并且在任何时候都有至少一个get请求挂起。在某一时刻,它会关闭,并立即开始一个新的。
简而言之: Websockets,轮询,以及您称之为最后一个方法的任何东西。
https://stackoverflow.com/questions/33028583
复制相似问题