美文网首页
rails5之ActionCable

rails5之ActionCable

作者: 33d8e4ec2cc9 | 来源:发表于2016-07-27 23:20 被阅读1214次

ActionCable作为Rails5中新加入的最重要的功能之一,在Rail5正式发布前就已经引人瞩目。 ActionCable通过使用WebSocket协议,可以实现从Server端主动向客户端推送消息。 同时也在客户端建立了通向Server端的连接,以保证消息推送的安全性和可靠性。

cable,即为绳索,简单来说,就是可以通过它封装好的模块来实现服务端向指定频道的客户端推送消息,要是比较难理解的话,可以参考我们平时在各大网站上使用的扫码登录,通过手机端扫描二维码,浏览器上无需输入账号密码即可直接登录,并且无需刷新页面,这个功能就可以通过ActionCable来实现。

example.gif

这是一个demo的演示,用了action cable实现了一个简单的聊天室。

使用方法
首先这是rails5自带的功能,如果想在5之前的版本使用,可以通过gem来安装。
配置
action cable是基于redis的,所以确保你的redis是启动状态的
/config/cable.yml

屏幕快照 2016-07-27 下午10.56.01.png

/config/routes.rb

屏幕快照 2016-07-27 下午11.00.30.png

这里有个坑,本地的cable默认只能跑在3000端口上,要是换了端口,得到application.rb里面配置
一句话
config.action_cable.disable_request_forgery_protection = true

然后就可以开始使用了

$ rails g channel test speak

会生成

屏幕快照 2016-07-27 下午11.04.08.png 屏幕快照 2016-07-27 下午11.05.44.png

服务器端好了,开始搞客户端,action cable封装了一系列的js方法供使用者调用

/assets/javascripts/cable.coffee

屏幕快照 2016-07-27 下午11.08.56.png

建立与服务器中间的通道,默认为当前服务端口

/assets/javascripts/channels/test.coffee


屏幕快照 2016-07-27 下午11.10.45.png

头两个function分别是注册和注销频道,对应刚才test_channel.rb里面的头两个方法,第三个是接受服务器端的消息,也是整个cable里面最神奇的地方,这个function可以实时监控服务器端的消息

打开两个浏览器,进入rails的端口,再打开rails console

ActionCable.server.broadcast 'some_channel', 'hello world!'

谷歌


屏幕快照 2016-07-27 下午11.16.42.png

火狐

屏幕快照 2016-07-27 下午11.17.47.png

我通过服务器端主动向客户端发了一条消息,客户端接收到了消息,并alert出来。
以上便是action cable的简单介绍。

相关文章

  • 支撑ActionCable的底层库

    文本根据ActionCable 5.1.0版本的代码进行讲解。ActionCable可以在Rails5中实现集成W...

  • rails5之ActionCable

    ActionCable作为Rails5中新加入的最重要的功能之一,在Rail5正式发布前就已经引人瞩目。 Acti...

  • vue+actioncable实现通信

    在rails5之后新增了actioncable实现websocket。通过它可以很方便的搭建websocket服务...

  • Rails4使用Actioncable

    15年的时候,出了rails5,有个新特性actioncable.刚好公司有个关于推送的需求,但是Rails的版本...

  • Rails5 controller testing

    Rails5 还在 beta 当中,但是即将来临的版本升级有相当多的改变(列如新功能 ActionCable),其...

  • 聊一聊ActionCable背后的技术

    Rails5中引入的可以实现实时通讯的新功能,ActionCable,可以说是这个版本的Rails的重大特性之一,...

  • ActionCable

    ActionCable的理解,分三个步骤: create a channel,生成一个app/channels/a...

  • Drifting Ruby

    1.Pow2.Impressionist3.ActionCable on Production4.Serializ...

  • rails4升级到rails5

    将近一天的折腾,把rails4升级到了rails5,部署到了服务器 Rails4 -> Rails5 修改Gemf...

  • Rails5中AR的新特性

    Rails5正式版, 终于经过众多测试版后,与我们见面了,本文就来介绍一下,在Rails5中有哪些关于Active...

网友评论

      本文标题:rails5之ActionCable

      本文链接:https://www.haomeiwen.com/subject/zknojttx.html