0
我的主机已经允许的端口8000至8010socket.io Redis的ECONNREFUSED
var express = require('express')
, https = require('https')
, app = express()
, cluster = require('cluster')
, numCPUs = require('os').cpus().length
, RedisStore = require("socket.io/lib/stores/redis")
, redis = require("socket.io/node_modules/redis");
, pub = redis.createClient(8002)
, sub = redis.createClient(8002)
, client = redis.createClient(8002);
, server = https.createServer(options,app);
, io = require('socket.io').listen(server);
io.set('store',new RedisStore({redisPub:pub,redisSub:sub,redisClient:client}));
if(cluster.isMaster){for(var i=0;i<numCPUs;i++){cluster.fork();}}
else{
console.log(numCPUs);
io.sockets.on('connection',function(socket){/*do stuff*/});
server.listen(8002);
}
我有真正的麻烦理解,如果我不能连接,因为端口或羯羊与插座提供Redis的给Redis的。 IO被打开...
events.js:72
throw er; // Unhandled 'error' event
^
Error: Redis connection to 127.0.0.1:8002 failed - connect ECONNREFUSED
at RedisClient.on_error (/home/engine/public_html/node_modules/socket.io/node_modules/redis/index.js:149:24)
at Socket.<anonymous> (/home/engine/public_html/node_modules/socket.io/node_modules/redis/index.js:83:14)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:426:14
at process._tickCallback (node.js:415:13)
[[email protected] ~]# info - socket.io started
也,我不明白这是如何可以给我更多的工人(我CONSOLE.LOG(numCPUs)和它说1,这是否意味着我只有1名工人?如果是这样,这意味着没有改变的表现,使这个努力毫无意义!?)。
目前还不清楚哪个端口redis实际上在监听?您正试图连接到端口8002,然后让您自己的服务器在该端口上侦听。这是不对的。 –
我也尝试过连接redis到8003,在8002上听我的应用程序,但我得到了同样的错误 –
在仔细阅读你的评论之后,我收集你认为redis附带了socket.io。它没有。首先,你需要自己安装和运行redis,就像其他数据库一样。 –