虽然我基本上已经完成了这个项目,但我需要使用套接字连接来确保数据保持最新,并且可以处理频繁的连接错误。在评估当前的解决方案时,我有一些问题,我列出了这些问题。此外,如果有更好的解决方案或架构建议,我很乐意听取。主Node.js应用程序从Redis中检索数据,所以我考虑只使用GO处理套接字部分,并将数据传输到Redis。JavaScript有时让我觉得复杂的方法很有挑战性。你认为问以下问题并以这种方式评估情况是正确的方法吗?
1.在Node.js应用程序中,最适合套接字连接的循环机制是什么?使用setInterval
更有利,还是while
循环更有利?在性能和错误处理方面有什么区别?
1.在while
循环中使用CCXT Pro的watchOrderBook
方法时,每次调用此方法都会向交换机发起新的连接请求,还是在初始连接后自动保持连接并接收更新?
1.对于连接到多个交换机和服务器的套接字连接,体系结构应该如何?我正在存储交换和符号信息与服务器编号。如何根据已知信息向这些服务器发出套接字侦听命令?
1.当发生断开连接时,重新连接套接字是否需要指数退避机制?如果设置固定的重新连接时间,比如每30秒,会有什么问题吗?我很想知道为什么其他人更喜欢指数退避方法。
我目前的工作方法如下,但作为最后的手段,我将改进此示例以建立连接。在本例中,我还担心while
循环导致的过度资源消耗。此外,这种方法阻碍了我管理断开的连接的能力,因为有时我需要建立和终止连接。虽然我可以用setInterval
实现这一点,但我相信用while
似乎不可能。
async function watchSelected(symbol) {
let data;
setInterval(async () => {
console.log(data?.asks[0][0]);
}, 1000);
while (true) {
const result = await exc.watchOrderBook(symbol, 10);
data = result;
}
}
watchSelected();
1条答案
按热度按时间r1zhe5dt1#
在用于套接字连接的Node.js应用程序中:
setInterval
。***优点:**设置简单,间隔固定。
***考虑因素:**潜在重叠、资源消耗。
while
循环进行更多控制和动态调度。***优点:**精确控制,动态调度。
***考虑因素:**潜在阻塞、资源密集度。
根据应用的要求和复杂性进行选择。