我正在使用 nodejs 和 mongoDB - 我遇到了一些连接问题。
好吧,实际上是“唤醒”问题!它连接得非常好 - 速度超级快,我通常对结果感到满意。
我的问题:如果我有一段时间不使用连接(我说一段时间,因为时间范围变化 5 分钟以上),它似乎会停止。我没有触发断开连接事件 - 它只是挂起。
最终我得到一个像错误这样的响应:无法连接到 [ * .mongolab.com: * ] - ( * = masked values)
快速重启应用程序,连接再次恢复正常。有时,如果我不重新启动应用程序,我可以刷新并愉快地重新连接。
这就是为什么我认为这是“唤醒”问题。
粗略的代码大纲:
我没有包含代码 - 我认为不需要它。它有效(除了连接丢失)
注意事项:只有一个“连接”——我从不关闭它。我从不重新打开。
我正在使用猫鼬,socketio。
/* constants */
var mongoConnect = 'myworkingconnectionstring-includingDBname';
/* includes */
/* settings */
/* Schema */
var db = mongoose.connect(mongoConnect);
/* Socketio */
io.configure(function (){
io.set('authorization', function (handshakeData, callback) {
});
});
io.sockets.on('connection', function (socket) {
});//sockets
io.sockets.on('disconnect', function(socket) {
console.log('socket disconnection')
});
/* The Routing */
app.post('/login', function(req, res){
});
app.get('/invited', function(req, res){
});
app.get('/', function(req, res){
});
app.get('/logout', function(req, res){
});
app.get('/error', function(req, res){
});
server.listen(port);
console.log('Listening on port '+port);
db.connection.on('error', function(err) {
console.log("DB connection Error: "+err);
});
db.connection.on('open', function() {
console.log("DB connected");
});
db.connection.on('close', function(str) {
console.log("DB disconnected: "+str);
});
我在这里尝试了各种配置,比如一直打开和关闭 - 不过我相信,普遍的共识是像我一样做一个打开的包装。??
我尝试了一个连接测试器,它会不断检查连接的状态......即使这似乎表明一切都很好 - 问题仍然存在。
从第一天起我就遇到了这个问题。我一直使用 MongoLab 托管 MongoDB。本地主机上的问题似乎更糟。但我在 Azure 和现在的 nodejit.su 上仍然存在问题。
就像它随处发生的那样——它一定是我、MongoDB 或 mongolab。
顺便说一句,我对 php 驱动程序也有类似的经验。(确认这是在nodejs上)
提供一些帮助会很棒——即使有人只是说“这很正常”
提前致谢
抢