nodejs+express+websocket+redis实现消息订阅系统

本文介绍了如何结合Node.js、Express、WebSocket和Redis来创建一个实时的消息订阅系统。通过Node.js作为服务器端,利用Express框架处理HTTP请求,WebSocket提供双向通信,而Redis作为消息中间件,确保消息的可靠传递。读者将了解到如何设置WebSocket连接、在Express中使用WebSocket、以及如何利用Redis存储和广播消息。
摘要由CSDN通过智能技术生成
 先看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++){
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值