简体   繁体   English

socket.io-redis在heroku上给出错误

[英]socket.io-redis giving error on heroku

i am trying to deploy my app on heroku.i added redistogo addon in my app.it is based on node.js and express. 我正在尝试在heroku.i上部署我的应用程序。我在我的应用程序中添加了redistogo插件。它基于node.js和express。

i write a small code 我写一个小代码

var redis = require('socket.io-redis');

var io = require('socket.io')(server);
io.adapter(redis(process.env.REDISTOGO_URL));

but on last line i am getting error: 但是在最后一行,我得到了错误:

Error: Redis connection to redistogo:6379 failed - getaddrinfo ENOTFOUND redistogo

can any one help why i am facing this error and get rid of this error.6379 is default port but my redistogo url doesn't has 6379 port no.it's port no is 10281. 任何人都可以帮助我为什么会遇到此错误并摆脱此错误。6379是默认端口,但我的redistogo url没有6379端口号。它的端口号是10281。

Is this a bug in socket.io-redis module or i am doing something wrong ?? 这是socket.io-redis模块中的错误还是我做错了?

If your Redis is running on port 10281 you need to set it when initializing adapter. 如果Redis在端口10281上运行,则需要在初始化适配器时进行设置。

var io = require('socket.io')(3000); var redis = require('socket.io-redis'); io.adapter(redis({ host: process.env.REDISTOGO_URL, port: 10281 }));

Check out documentation https://github.com/automattic/socket.io-redis#adapteropts 查看文档https://github.com/automattic/socket.io-redis#adapteropts

If redis DB has a password then it's better to opt for 如果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 }));

in case of heroku enter host as 如果是heroku,请输入host作为

redis://redistogo:XXXXXXXXX@beardfish.redistogo.com
and port : provided in redistogo_url

and now it's working great. 现在效果很好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM