解析服务器和长轮询



我有一个客户,他有一些自定义硬件,功能相当有限(功率和连接性(和一个自制的后端(IIS + SQL Server(解决方案。此设置处理异步类型通信的主要方式之一是通过具有合理超时的长轮询变体。

我正在研究使用解析服务器切换他们的后端解决方案的可能性,我很好奇是否有人在将解析服务器与长轮询请求一起使用方面有经验或洞察力。特别是,我很好奇是否有可能使用云代码实现长轮询(我的猜测是可能的(,以及就资源和性能而言,这是否是可行的途径。

我怀疑这会很好,看看其他人写的关于 Node JS 在保持开放连接时的效率的文章,但我很想听听任何了解此事的人的意见。

所以我创建了一个简单的测试来查看解析服务器如何处理长轮询。我创建了一个云代码端点,该端点在返回之前使连接保持打开状态 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

结果表明,解析服务器在长轮询方面没有任何问题。在测试期间,节点进程的资源使用情况没有显著变化。

因此,万一将来有人发现自己有这种需求,你应该是安全的。

最新更新