我正在尝试将我的应用程序部署到node.js上。我补充说,我的app.it中的redistogo插件是基于heroku.i和express的。
我写了一小段代码
var redis = require('socket.io-redis');
var io = require('socket.io')(server);
io.adapter(redis(process.env.REDISTOGO_URL));但在最后一行,我得到了错误:
Error: Redis connection to redistogo:6379 failed - getaddrinfo ENOTFOUND redistogo谁能帮助我为什么面对这个错误并摆脱这个错误。6379是默认的端口,但我的redistogo url没有6379端口号。它的端口号是10281。
这是socket.io-redis模块中的错误还是我做错了什么??
发布于 2015-06-22 16:48:52
如果您的Redis在端口10281上运行,则需要在初始化适配器时进行设置。
var io = require('socket.io')(3000); var redis = require('socket.io-redis'); io.adapter(redis({ host: process.env.REDISTOGO_URL, port: 10281 }));
查看文档https://github.com/automattic/socket.io-redis#adapteropts
发布于 2015-06-22 18:54:38
如果redis DB有密码,那么最好选择
var redis = require('redis').createClient;
var adapter = require('socket.io-redis');
var pub = redis(port, host, { auth_pass: "pwd" });
var sub = redis(port, host, { detect_buffers: true, auth_pass: "pwd"
});
io.adapter(adapter({ pubClient: pub, subClient: sub }));如果是heroku,请将host输入为
redis://redistogo:XXXXXXXXX@beardfish.redistogo.com
and port : provided in redistogo_url现在它工作得很好。
https://stackoverflow.com/questions/30974637
复制相似问题