2015-06-22 4 views
0

Я пытаюсь развернуть мое приложение на heroku.i добавил redistogo аддон в моем приложении.it основан на node.js и выражает.socket.io-redis, дающий ошибку на heroku

я написать небольшой код

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 

может любой помощи, почему я перед этой ошибки и избавиться от этого error.6379 это порт по умолчанию, но у моего redistogo url нет порта 6379. Порт no.it no is 10281.

Это ошибка в модуле socket.io-redis, или я делаю что-то неправильно ??

ответ

1

Если ваш 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

+0

Привет @galethil, мой REDISTOGO_URL подобен redis: // redistogo: [email protected]: 10281/.as, упомянутый в документах, я могу указать один url также в документах. В примере также дано var adapter = adapter ('локальный: 6379'); но дайте ему попробовать, если ваше решение будет работать или нет .Thnaks –

0

Если 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 ввода хоста,

redis://redistogo:[email protected] 
and port : provided in redistogo_url 

и теперь он отлично работает.

+0

hello @Ritesh Mehandiratta, к сожалению, это решение не работает для меня, мой код не работает либо: var redis = require ('redis'). createClient; var pub = redis ("10501", "redis: // redistogo: ****@tarpon.redistogo.com", {auth_pass: "****"}); var sub = redis ("10501", "redis: // redistogo: ****@tarpon.redistogo.com", {detect_buffers: true, auth_pass: "****"}); io.adapter (redisSocket ({host: process.env.REDISTOGO_URL, порт: 10501, pubClient: pub, subClient: sub})); –

Смежные вопросы