先看app.js的主要部分
io.sockets.on('connection',function(socket){
var credis = redis.createClient();
credis.auth('chenqiguo');
//订阅一个频道的redis链接
var subscribe = redis.createClient();
subscribe.auth('chenqiguo'); //授权
//创建一个发布消息的redis链接,向指定的频道发送消息
var publish = redis.createClient();
publish.auth('chenqiguo');//授权
//socket监听发布者在某个channel上发布一条信息
socket.on('publish',function(channel,data){
publish.publish(channel,data);
})
//scoket监听订阅者在客户端订阅一个channel
socket.on('psubscribe',function(channel,username){
credis.sadd('user:'+username,channel); //这里我们把用户每次订阅的channel放到了一个set中
subscribe.psubscribe(channel);
})
//服务器接受页面断开重新刷新后重新加载已经订阅的channel(redis的单连接问题)
socket.on('psuballscribe',function(channelArr,username){
for(var i=0;i<channelArr.length;i++){