我正在尝试在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模块中的错误还是我做错了什么?
答案 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()
现在它工作得很好。