我有一个客户端,该客户端具有一些自定义硬件,这些功能具有相当有限的功能(从电源和连接性而言),还有一个内置后端(IIS + SQL Server)解决方案。这种设置处理异步类型通信的主要方法之一是通过具有合理超时的长轮询的变体。
我正在研究是否可以将其后端解决方案与parse-server一起使用的可能性,并且我很好奇是否有人在将parse-server用于长轮询请求方面有经验或独到的见解。特别是,我很好奇是否可以使用Cloud Code实现长轮询(我的猜测是可能),以及这在资源和性能方面是否是可行的途径。
我怀疑这样做很好,看看其他人在保持开放连接时对Node JS效率的看法,但是我很乐意听取任何有关此事的知识。
答案 0 :(得分:1)
因此,我创建了一个简单的测试,以查看parse-server如何处理长轮询。我创建了一个Cloud Code端点,该端点将连接保持打开状态30秒钟,然后返回:
async function sleep(seconds)
{
var millisecondsToWait = seconds * 1000
return new Promise(resolve => setTimeout(resolve, millisecondsToWait));
}
Parse.Cloud.define('test', async function (req) {
await sleep(30)
return 'Hi'
})
然后我编写了一个bash脚本,该脚本在一个循环中在端点触发了很多请求:
#!/bin/bash
for i in {0..200}
do
curl -X POST -H 'X-Parse-Application-Id: myapp' -H 'X-Parse-REST-API-Key: someString' -H 'Content-Type: application/json' http://localhost:5050/parse/functions/test &
done
结果表明parse-server在长轮询方面没有任何问题。在测试期间,节点进程的资源使用没有显着变化。
因此,万一将来有人发现自己有这种需要,您应该很安全。