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

时间:2015-06-22 07:52:41

标签: node.js sockets heroku socket.io socket.io-redis

我正在尝试在heroku上部署我的应用程序。我在我的应用程序中添加了redistogo插件。它基于node.js和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网址没有6379端口no.it的端口号是10281。

这是socket.io-redis模块中的错误还是我做错了什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果redis DB有密码,那么最好选择

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

如果heroku进入主持人

import paramiko
import sys

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('x.x.x.x', port=2222, username='user', password='pass')
stdin, stdout, stderr = client.exec_command('ls')

print stdout
client.close()

现在它工作得很好。