新手问题 请求一个实时推送到浏览器客户端的方案!

stephen · 2015年09月19日 · 最后由 kingguy 回复于 2015年09月24日 · 4733 次阅读

针对浏览器的通知方案,上网查过 1、faye,就是 ruby-china 的方案 2、https://github.com/igrigorik/em-websocket 3、第三方(好像没有,只有推送到手机 APP 的) 4、SSE(但是对于 rails 好像资料不多) 需求很简单,就服务器推送到已经登录账号的浏览器客户端,作为一个实时消息通知。 类似有新的订单,然后通知到这个订单所属商铺!

1. ruby-china 用message bus
2. 是一种方案
3. 第三方有,pusher,github也在用这个服务,基础技术用的2
4. 没用过

主要还是根据用户量,和 具体的场景。关于这个 rails-china 上有一个主题是讲这个的

@awking 第三方有没有国内的?

@rei 这个好像是 rails5 的新特性!

我用MessageBus实现实时的消息推送,感觉还行。

@awking pusher 基础技术用的是 faye?

#4 楼 @stephen 这是一个 Gem,还没有集成到 Rails 里面,现在看文档也可以使用。

socket.io,很简单

faye 应该还算靠谱

我们是这么做的,单独开发一个专门的订单消息推送服务(这里可以采用 Go 或者 Node 完成,因为这些语言天然支持并发)。用户浏览器打开之后,前端会与订单消息推送服务建立 WebSocket 长链接(长链接一定要做心跳包和重连机制,否则也会导致消息发送不及时),Rails 一旦接受到新的订单信息,就把消息 Pub 到 Redis 的 Channel 里面,而我们的订单消息推送服务也会去监听这个 Channel,一旦 Channel 有消息,就广播给所有的 WebSocket Clients。

@chareice 和 message_bus 一样!目前用 message_bus 省事,已经用上了,不过效果如何还未有好好体现

actioncable

pusher + slanger

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