【问题标题】:How does socket.io-redis works behind the scene?socket.io-redis 是如何在幕后工作的?
【发布时间】:2016-01-28 22:45:39
【问题描述】:

我打算将消息(聊天消息)存储在 redis 上,我偶然发现了一个库 socket.io-redis 由 socket.io 人创建。我只想知道如果我使用这个库,它将对我当前的 socket.io 实例做什么?

它会自动保存所有幕后消息吗?

例如,我需要使用socket.io-redis 在我的socket.io 之上实现redis 的唯一代码是

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

所以问题是它在幕后究竟做了什么?我需要安装node_redis来存储聊天消息吗?

【问题讨论】:

    标签: node.js redis socket.io


    【解决方案1】:

    我相信你误解了这个项目。引用他们的页面:

    通过使用 socket.io-redis 适配器运行 socket.io,您可以运行 不同进程或服务器中的多个 socket.io 实例 都可以相互广播和发射事件。

    这意味着使用这个模块将提供一个 socket.io 集群,提供在不同进程或服务器上运行的客户端之间发送消息的能力

    【讨论】:

      【解决方案2】:

      如果您想将消息存储在例如聊天应用程序中,那么 Redis 当然不是一个好主意。它在内存上运行。您需要使用在磁盘上工作的数据库解决方案。您仍然可以在套接字 io 应用程序中使用 Redis,但不能用于存储数据。通常,人们在 socket.io 应用程序上使用 Redis 作为背板。因此,例如,您开发了一个 socket.io 应用程序,并且您想让它超过一个实例,您需要共享数据,因为您要将一条消息推送到一个实例,其他实例也应该通知它。在 Redis pub 中,子结构会为您提供帮助。

      【讨论】:

        猜你喜欢
        • 2018-03-17
        • 2010-09-24
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 2010-12-28
        • 1970-01-01
        相关资源
        最近更新 更多