Rails ruby 实时推送

ming_kernel · 2013年11月13日 · 最后由 wxianfeng 回复于 2013年11月15日 · 5654 次阅读

最近正在用 rails 做一个小网站,需要向用户实时推送一点数据; 原来是搞了一个 rails 处理用户请求,然后用 node.js 处理 websocket 的推送,rails 和 node.js 之间通过 redis 的 pub/sub 交换数据。

感觉这种架构维护起来非常麻烦,大家有没有简单一点的方法推荐?

用第三方服务,比如 http://push.io 帮你解决推送的事情,比你自己维护要简单得多。

#1 楼 @lgn21st 不知道 push.io 对国内的支持好不好,他们网站不翻墙都貌似进不去,连接不稳定

#2 楼 @ming_kernel 其实国内已经有很多项目服务在用这,官网被墙不代表服务被墙,你可以自行测试一下。

你用得着这么麻烦吗?如果是简单问题,就简单处理。直接使用 em-websocket 处理呀,我就是这么做的。然后前端使用 websocket-js 搞定,就这么简单。一个要求就是服务器必须是基于 EventMachine 的,我用 thin

faye 可以。

#5 楼 @qichunren 恩 我去试试 谢谢

#7 楼 @jimrokliu #8 楼 @ming_kernel

faye nodejs 版本,如果做负载,需要起 redis 做缓存 engine 的

var http = require('http'),
    redis = require('faye-redis'),
    faye = require('faye');

var bayeux = new faye.NodeAdapter({
    mount: '/faye', 
    timeout: 45,
    engine: {
        type: redis,
        host: '192.168.2.2',
    }

});

无缓存的 faye,真的没啥用

推荐下我厂的手机推送服务:http://developer.baidu.com/cloud/push

《如何用 Ruby 实作一个后台推送服务》:http://liusihao.com/post/65514214172/ruby

我在用 nginx-push-stream

需要 登录 后方可回复, 如果你还没有账号请 注册新账号