当前位置: 首页 > 面试题库 >

使用socket.io-redis的示例

东方灵均
2023-03-14
问题内容

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

我需要一个使用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。

  1. 添加您需要的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);
        });
      });
    });
  1. 使用socket.io启动服务器
        server.listen(3000, function(){
       logger.debug('listening on *:3000');
    });


 类似资料:
  • 问题内容: 我正在尝试在多个进程和/或服务器上扩展一个简单的socket.io应用程序。 Socket.io支持RedisStore,但是我对如何使用它感到困惑。 我正在看这个例子, http://www.ranu.com.ar/post/50418940422/redisstore-and-rooms-with- socket-io 但是我不明白在该代码中使用RedisStore与使用Memor

  • 拉威尔5.6 我正在尝试创建一个实时应用程序。我遵循了在谷歌上找到的教程,但它似乎不起作用。我不明白为什么,因为它在控制台中没有显示错误。 在config/app中。php 这是我的活动 这是我的控制器 在我的引导程序的底部。js 我的laravel-echo-server.json 我的聊天组件。vue 如果有人知道这个问题的解决方案。请帮忙。非常感谢你!

  • 问题内容: 这是我使用socket.io作为WebSocket并使用pub / sub redis后端的代码。 每个新的io请求都将创建新的Redis连接。如果有人打开带有100个选项卡的浏览器,则Redis客户端将打开100个连接。看起来不太好。 如果Cookie相同,是否可以重用Redis连接?因此,如果有人打开许多浏览器选项卡,也将其视为打开1连接。 问题答案: 实际上,如果要在“连接”事件

  • 我试图提供静态文件的ngin x 1.6和代理套接字流量来自Node.js网络服务器与socket.io。 这是nginx.conf的相关部分: 它直接在浏览器和 Node.js 之间完美运行,但使用 nginx 1.6 代理时 socket.io 时间太长。握手协议需要太多时间,但如果不间断,它最终会在几分钟后开始工作。 nginx的静态文件交付工作得很好。 会有什么问题呢? 更新: 我分析了一

  • 问题内容: 我想为我的项目构建一个实时聊天系统,但实际上我在使用Redis时遇到了一些问题,因为我希望尽可能地更好地存储数据。 我的问题: 我想使用Socket Io在一个封闭的小组(两个人)中进行实时聊天,但是如何存储消息呢? Redis是一个键值存储,这意味着如果我要存储某些内容,则需要在存储之前向数据添加唯一键。 如果同一用户发布多个消息,那么我将在redis中使用哪些键?我正在考虑将唯一I

  • 问题内容: 所以我试图让Session在我的socket.on(’connection’,…)内部工作,我试图使用最新版本进行工作:Socket.io-0.9.13,Express-3.1.0和最新版本其他模块。 无论如何,我都尝试过使用两个模块’ connect-redis ‘和’ session.socket.io ‘,它们都有类似的问题。 在我的代码中,我有2个redis存储(socketi