套接字连接参数问题

时间:2019-08-19 15:13:52

标签: azure sockets socket.io sails.js azure-web-sites

我正在使用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从未使用我的配置。

我尝试过:

  1. 配置sockets.js文件以使用我需要的参数。
  2. 在azure Web应用程序上配置带有套接字信息的local.js文件
  3. 使用相同的信息配置所有文件(sockets.js,development.js,production.js,local.js),并始终使用“ 127.0.0.1”
  4. 我在某些方面使用“ console.log”以确保“ sails lift --staging”正在使用我的配置文件(确实如此)

创建我的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)

0 个答案:

没有答案