2013-08-16 50 views
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名工人?如果是這樣,這意味着沒有改變的表現,使這個努力毫無意義!?)。

+0

目前還不清楚哪個端口redis實際上在監聽?您正試圖連接到端口8002,然後讓您自己的服務器在該端口上偵聽。這是不對的。 –

+0

我也嘗試過連接redis到8003,在8002上聽我的應用程序,但我得到了同樣的錯誤 –

+0

在仔細閱讀你的評論之後,我收集你認爲redis附帶了socket.io。它沒有。首先,你需要自己安裝和運行redis,就像其他數據庫一樣。 –

回答

相關問題