草庐IT

javascript - RxJs:轮询直到完成间隔或收到正确的数据

我如何使用RxJs在浏览器中执行以下场景:提交数据到队列进行处理取回工作ID每1秒轮询一次另一个端点,直到结果可用或60秒过去(然后失败)我想出的中间解决方案:Rx.Observable.fromPromise(submitJobToQueue(jobData)).flatMap(jobQueueData=>Rx.Observable.interval(1000).delay(5000).map(_=>jobQueueData.jobId).take(55)).flatMap(jobId=>Rx.Observable.fromPromise(pollQueueForResult(job

javascript - 长轮询和使用 cometd 之间有区别吗

我正在实现一个需要实时更新的系统。我一直在研究某些场景,其中包括Comet。实现这一点,我看不出这与传统的长轮询有任何不同。在这两种情况下,您都必须发送请求,然后服务器发回响应。在浏览器中解释响应,然后启动新请求。那么,如果在这两种情况下我都需要打开和关闭连接,为什么还要使用comet。 最佳答案 一些Comet技术不要求您不断打开新请求(例如分块隐藏的iframe),其想法是保持请求打开并让服务器定期发送数据。但这在没有负面副作用的情况下(正如一位维基百科贡献者巧妙地指出的那样)在所有主要浏览器中都无法正常工作,因此需要长轮询技术

php - 使用 Symfony Process 组件进行 Ajax 轮询

我正在启动一个长时间运行的任务,该任务使用SymfonyProcess组件返回有关任务进度的增量输出。其中一个示例展示了如何获取实时输出,另一个示例展示了如何运行异步任务。我想要实现的是将getIncrementalOutput的结果传递回ajax轮询函数,以便我可以实时更新前端。在任何一种情况下,process->start()似乎都阻塞了,因为我的ajax调用需要一分钟时间才能返回,到那时任务已经完成。我想我正在尝试避免将进度写入数据库或文件,而是直接从正在运行的PHP任务获取输出。不确定是否可能。 最佳答案 虽然我不完全明白你

PHP 长轮询 - "long"应该有多长?

在PHP中使用长轮询时,例如$start_time=time();while((time()-$start_time)getNewStuff()->rows>0){$response="newstuff!";break;}usleep(1000000);}echo$response;你如何评价,你“投票”了多久?在这个例子中,我选择了30秒,因为……好吧,我什至不知道为什么。使用更长的民意调查(几分钟或类似时间)会产生什么影响?Apache会崩溃吗?我的应用程序会变得迟缓/卡住/降低性能吗?此外:进程应该使用多长时间? 最佳答案 您

php - 无需轮询即可检测 PHP 中的文件更改

我正在尝试检测特定文件何时被修改,而不是轮询文件内容以查找更改。服务器运行MacOSX,因此inotify不可用。我的服务器允许使用exec()。我怎样才能做到这一点? 最佳答案 检查filemtime().您可以经常对其进行轮询,这比在文件本身中查找更改要容易得多。 关于php-无需轮询即可检测PHP中的文件更改,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/13665859/

php - 如何为长轮询配置 nginx(和 php)

我正在创建一个简单的聊天应用程序。已经在Ubuntu11.10上安装了nginx,通过fast-cgi使用PHP。为了感受一下性能,我制作了一个简单的PHP文件,它会休眠10秒然后报告时间。使用多个浏览器实例(不同的浏览器,不同的机器)调用它,响应在大约10个实例后变得缓慢,比预期的要少很多(希望在数百个之前不会看到任何恶化,尽管使用手动浏览器测试是不切实际的).我是一名网络开发人员,而不是系统管理员,也许超出了我的理解范围?不是在寻找最佳解决方案(搜索显示nginx每个内核应该能够处理10k),但几百个就不错了。还有NginxPushStreamModule,但我不知道如何安装它,似

javascript - 如何完全实现消息轮询的服务器发送事件

我正在尝试使用API与服务器通信。为了简化操作,我编写了一个脚本,该脚本将使用php脚本与API通信。我的目标是每秒向API查询一次,以查看他们的队列中是否有新消息。有人建议我使用server-sentevents方法,让服务器仅在有新内容时才向客户端发送响应。这是我的php脚本'server:IP',//REQUIRED-ServerName'port'=>8018,//REQUIRED-ServerPort'userID'=>'user',//REQUIRED-UserIDtologinwith'password'=>'123456',//REQUIRED-passwordfort

php - Ajax/PHP - 我应该使用一个长时间运行的脚本还是轮询?

我有一个通过ajax启动的PHP脚本。此PHP脚本使用exec()通过shell运行单独的PHP脚本。通过exec()调用的脚本可能需要30秒左右才能完成。完成后我需要更新UI。首选这些选项中的哪一个?a)让HTTP连接保持打开状态30秒,然后等待它完成。b)让exec()在后台运行PHP脚本,然后使用ajax轮询检查是否完成(每5秒左右)。c)我没想到的其他事情。谢谢你,布莱恩 最佳答案 每隔几秒轮询一次服务器更新。当您将连接保持打开状态很长时间时,它们总是有可能被服务器或它们的浏览器丢弃(如果HTTP请求花费的时间太长,浏览器会

php - 使用 jQuery 和 PHP 实现长轮询

我想建立一个基于JavaScript(jQuery将用于AJAX)和PHP的聊天。我听说这样做的一个好方法是使用长轮询。我明白这个想法,但我不知道如何在服务器端实现它。无限循环听起来不是个好主意。 最佳答案 您不想创建无限循环,但可以设置超时。基本上循环X秒等待某种数据,如果没有发生,则向客户端发送响应,告诉它它需要发起一个新请求,该请求将具有相同的超时期限。$source;//somedatasource-db,etc$data=null;//ourreturndata$timeout=30;//timeoutinseconds$

javascript - Websockets - 获取数据(轮询?)

对于一些已经全神贯注的人来说,这可能是一个愚蠢的问题,也许我只需要更多coffee.问题是否使用websockets或ajax似乎仍有一些投票正在进行。这是正确的吗?示例(非真实项目):我想关注一个文本文件。除非我遗漏了什么(更多的咖啡?),我不是还需要a)询问服务器是否有更新,或者b)告诉页面我有更新;通过让PHP代码休眠一段时间或使用setTimeout在客户端循环。我确实理解的事情:我确实看到了在服务器和页面之间来回对话的好处。我看到我没有发送http请求。所以我看到了好处。细节:我一直都是用xmlhttprequest所以我决定根据我的理解检查整个websockets的事情,数