我正在使用Sails创建一个新的API,我需要使用redis作为缓存存储,因为现在我在azure上有一个Web应用程序来存储我的API和一个local.js文件,以便在服务器上运行“ stage”配置网络应用。我正在staging.js上配置帆。配置文件如下所示: (使用https://sailsjs.com/documentation/reference/configuration/sails-config-sockets)
插座:{ 适配器:'@ sailshq / socket.io-redis', 分贝:1, 主持人:“ my-url”, 通过:“我的通过”, 端口:6379, }
如果我在PC上运行“ sails lift --staging”,则一切正常,套接字正常工作,并且我可以使用我的应用程序。问题是当我继续执行天蓝色的配置时。部署过程完成后,应用程序已重新启动,并且从未开始显示下一条错误消息:
错误:Redis与127.0.0.1:6379的连接失败-在TCPConnectWrap.afterConnect上以ECONNREFUSED> 127.0.0.1:6379连接[完成时]>(net.js:1117:14)
如您所见,sails api从未使用我的配置。
我尝试过:
创建我的Redis客户端:
var redis = require('redis'),
client = redis.createClient(sails.config.redis.port,
sails.config.redis.host,
{ no_ready_check: true });
if (sails.config.redis.auth) {
client.auth(sails.config.redis.auth, function () {
console.log('>>>> Redis client connected');
});
}
else {
console.log(">>>> Redis local connected");
}
(在我的本地环境中,它适用于本地连接或分段连接,但是在azure Web应用程序上,它不起作用)
我希望使用“ staging”参数与本地env具有相同的连接。
输出为“ socket”,始终使用“ 127.0.0.1”作为主机参数:
error: A hook (`sockets`) failed to load!
error:
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1117:14)