使用 socket.io-redis 的示例

Example to use socket.io-redis

大家好,感谢您的宝贵时间和帮助。

我需要一个简单的例子来使用socket.io-redis,欢迎评论。 我阅读了文档,但我不明白。 谢谢,

socket.io-redis 文档没有提到您实际上需要 运行 一个 redis 服务器,所以您可能已经忘记了这一点。 socket.io-redis插件使用redis服务器的pub/sub客户端连接多个socket.io实例。

  1. https://redis.io

  2. 下载并安装redis服务器
  3. 将 redis 插件添加到您的 socket.io 实例:

    var express = require('express');
    var app = express();
    var server = require('http').Server(app);
    var io = require('socket.io')(server);
    var redis = require('socket.io-redis');
    io.adapter(redis({ host: 'localhost', port: 6379 }));
    

    6379是默认的redis端口,localhost如果你运行节点和redis在同一台服务器上。

  4. 添加socket.io和socket.io-你需要的redis功能

    var your_namespace_socket = io.of('/your-namespace');
    your_namespace_socket.on('connection', function(socket){
    
      socket.on('join', function(room){
        socket.join(room);
    
        //log other socket.io-id's in the room
        your_namespace_socket.adapter.clients([room], (err, clients) => {
          console.log(clients);
        });
      });
    });
    
  5. 用socket.io

    启动服务器
    server.listen(3000, function(){
       logger.debug('listening on *:3000');
    });