javascript - Socket.io 重新分发

标签 javascript node.js redis socket.io node-redis

使用 socket.io redisstore 适配器/存储(?),是否可以“查看”所有客户端并“选择”甚至是未直接连接到您的 socket.io 服务器的客户端?还是仅限于 socket.io 的“房间”功能?

举一个实际的例子,同一个聊天室中的两个用户连接到两个不同的 socket.io Node ,rediststore 适配器/存储是否可以在不对代码进行大量更改的情况下从一个用户到另一个用户窃窃私语,如果您已经有了一个有效的单一进程/服务器实现?

我问的原因是我目前还没有处于项目的开发阶段而过度关注缩放(我也没有时间深入研究 node.js 缩放背后的概念,它看起来与我已经习惯了(现在是第一个完整的 node.js 项目)),但是我不想构建一个基础设施,它最终证明是无法扩展的。

最佳答案

Redis store (/lib/stores/redis.js) 仅与 redis pub-sub 一起用于服务器之间的消息传播。因此,如果您想获取已连接用户的列表 - 您必须自己完成。

但是如果你想在两个用户之间传递消息——我认为这不会成为标准 socket.io+redis 库的问题,因为 redis pub-sub 对于在服务器\进程之间传递消息非常有用。

关于javascript - Socket.io 重新分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147289/

相关文章:

javascript - React-Toolbox 复选框内联

javascript - javascript 中的词频统计?

python - 我应该使用哪种数据库模型在运行时动态修改实体/属性?

database - 改善快速增长的数据库中的查询时间?

node.js - Cloud Foundry - node.js - MySQL

java - 带有 Long 类型键的 spring data redis zadd 不起作用

javascript - 使用 GL.points 在 WebGL 中绘制单个像素

javascript - 在数字之间添加空格

javascript - 我的笔记本电脑上的 Chrome 为何能够提供如此精确的地理定位?

mysql - 将数据存储在 MySQL block 中