我使用ReactJS,ExpressJS,MongoDB和SocketIO开发了一个应用程序。
我有两台服务器: - 服务器A || 服务器B
套接字服务器托管在服务器A 上,应用程序托管在服务器B上
我在服务器B 上使用服务器A 套接字作为客户端。
服务器A 套接字的主要工作是从服务器A
的MongoDB数据库中获取后发出数据一切都按预期工作,但在4-5-6小时后停止发出数据,但套接字连接将起作用。
我已经使用
进行了检查socket.on('connection',function(){
console.log("Connected")
)
我没有得到代码的错误。
我的代码:https://jsfiddle.net/ymqxo31d/
任何人都可以帮助我吗
答案 0 :(得分:0)
我有一些编程错误。
我从setInterval()中的MongoDB获取数据,所以一段时间后耗尽资源,数据库连接每次都开始失败。
首先,我创建了一个单一MongoDB连接,并使用了我需要的每个地方。
2 ann我删除了setInterval并使用了setTimeout,如下所示。 (注意:如果我继续使用setInterval,它会在定义的时间间隔内执行。它没有任何发出数据的状态[这也会导致繁重的资源使用]但我需要成功获取时将数据发送到套接字。)
setTimeout(emitData,1000);
function emitData(){
db.collection.find({}).toArray(function(data){
socket.emit('updateData',data);
setTimeout(emitData,1000);
})
}