node.js 和 juggernaut 发布/订阅

Posted

技术标签:

【中文标题】node.js 和 juggernaut 发布/订阅【英文标题】:node.js and juggernaut pub/sub 【发布时间】:2011-06-06 04:24:33 【问题描述】:

我正在使用 express 框架和 juggernaut。我看了很多关于剑圣的例子,所有的例子都使用这种方法(客户端):

  var jug = new Juggernaut;
  jug.subscribe("channel_name", function(data)
    console.log("Got data: " + data);
  );

它安全吗?我不这么认为,每个人都可以从 javascript 控制台订阅频道。有没有办法从服务器端订阅频道?

【问题讨论】:

它有什么不安全的地方?另外,您想订阅在另一台服务器上还是在同一台服务器上运行的剑圣? 我从这里举个例子:github.com/maccman/juggernaut。如您所见,您可以从浏览器订阅频道。我想在我的应用程序中使用私人频道,所以这种方式对我来说是不安全的。我想检查会话然后允许订阅。 【参考方案1】:

通过隐蔽使用安全性,使用随机通道名称 (HMAC)。

【讨论】:

确实,我发现这是在大多数 pubsub 系统(PubNub,Redis 也是)中拥有某种安全通道的唯一方法【参考方案2】:

我不知道 Juggernaut 是如何工作的,但我知道 Faye 支持可以包含身份验证的扩展,因此订阅操作需要有效的令牌。见:http://faye.jcoglan.com/node.html

值得检查一下剑圣是否支持类似的扩展/拦截模型。

【讨论】:

以上是关于node.js 和 juggernaut 发布/订阅的主要内容,如果未能解决你的问题,请参考以下文章

如何在生产模式下运行 redis 服务器和 juggernaut 服务器

从 Rails 监听 Juggernaut 事件

使用 rails 应用程序启动 Juggernaut 和 Redis

如何在 Internet Explorer 中测试 Rails Juggernaut?

使用 juggernaut 作为 rails 插件时遇到问题

Rails - 同步 - Faye、Juggernaut、Cool.io、普通的旧事件机器