redis - 使用 socket.io-redis 的例子

标签 redis socket.io socket.io-redis

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

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

最佳答案

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

  1. https://redis.io下载并安装一个redis服务器

  2. 将 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 端口,如果您在同一台服务器上运行 node 和 redis,则为 localhost。

  3. 添加您需要的 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);
        });
      });
    });
    
  4. 用socket.io启动服务器

    server.listen(3000, function(){
       logger.debug('listening on *:3000');
    });
    

关于redis - 使用 socket.io-redis 的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282742/

相关文章:

Redis 重启时 Node.js + Socket.io 和 Redis Store 问题

node.js - 错误 : Redis connection to 127. 0.0.1 :6379 failed - connect ECONNREFUSED 127. 0.0.1:6379

angularjs - ionic Cordova 中的 Socket.io

android - 将 Socket Io 服务器与 Android App 集成

node.js - 如何从 socket.io-redis 发送私有(private)消息(发出)

java - 从 Redis 数据库转换为 java 中的日期

ruby-on-rails - 在 Heroku 上使用 redistogo 时如何在本地测试我的生产配置

javascript - 如何在 Socket.IO 中使用 xhr-polling 存储持久数据?

socket.io - socket.io-redis 如何处理房间?