2014-07-10 56 views
0

我剛剛更新了socket.io到版本1.0.6,發現在socket.io/node_modules下不再有redis。nodejs和socket.io-redis(socket.io 1.0.6):如何重新訂閱?

所以,我NPM安裝socket.io-Redis的,因爲這個線程說,這是正確的解決方案: Migrating socket.io from 0.9.x to 1.x, Problems with configuring RedisStore

但是,隨着最後一個版本,我曾經對我的應用程序下面的代碼。 JS:

var redis = require('socket.io/node_modules/redis'); 
var sub = redis.createClient(); 

有了這項新措施,正在運行的節點app.js引發錯誤:它抱怨說,Redis的沒有createClient方法。

我應該如何使用socket.io(1.0.6)和socket.io-redis進行訂閱?

回答

0

除了socket.io-redis之外,還應該導入redis模塊。

var redisAdapter = require('socket.io-redis'); 
var redis = require('redis'); 

var pub = redis.createClient(port, host); 
var sub = redis.createClient(port, host); 

io.adapter(redisAdapter({pubClient: pub, subClient: sub})); 
+0

嗨Aruna,請你稍後詳細介紹一下如何在後面的代碼中使用這些pub和sub對象? 您是否有任何示例代碼或任何參考,因爲查看'socket.io-redis'庫的文檔,我不能有任何清晰的想法。 – Shivam

+0

嗨Shivam,兩年來我還沒有使用socket.io。所以我只是模糊地記得一切都是如何加起來的。但是如果我沒有記錯的話,你不必使用那些pub sub客戶端,因爲它們在redis適配器的內部使用。所以你不必擔心它們。 –

+0

是的,非常感謝。儘管通過查看庫的代碼,我已經知道了。 – Shivam