文档章节

Ruby基于websocket实时通信的实现—GoEasy

w
 wallance2
发布于 2017/02/14 17:42
字数 357
阅读 1
收藏 0

Ruby websocket实时消息推送

在这里我记录一下之前如何实现服务器端与客户端实时通信:

实现步骤如下:

1.获取GoEasy appkey.

在goeasy官网上注册一个账号,并新建一个app. APP创建好后系统会为该app自动生成两个key, 一个既可以用来接收又可以用来推送 (supper key),另一个只可以用来接收(subscriber key).

2.客户端订阅一个channel.

a. 在客户端引入goeasy.js, js地址:http://cdn.goeasy.io/goeasy.js

需要注意的是,不能将goeasy.js下载到本地,因为goeasy会根据不同浏览器来提供不同的js. 官网上也有相应说明。

b. 订阅代码

var goEasy = new GoEasy({appkey: 'subscriber key'});//这里我用的是subscriber key,因为在我的客户端我不需要推送任何消息,所以没有必要使用supper key

goEasy. subscribe({

             channel: 'csdnNotification',

             onMessage: function(message){

                          alert('Meessage received:'+message.content);//接收到推送的消息

                       }

                });

3.后台往相同channel上推送. 用GoEasy提供的restful API实现

API url: http://goeasy.io/goeasy/publish

方式: Post

参数列表:

channel: 'csdnNotification' //与订阅的channel必须一致,否则客户端将收不到消息。因此我们也可以根据channel来控制哪些客户端可以接收。

appkey: 'supper key' //这里必须使用supper key

content: 'blabla…..' //要推送的内容

希望对大家有帮助。

© 著作权归作者所有

共有 人打赏支持
w
粉丝 0
博文 9
码字总数 2935
作品 0
成都
从构建分布式秒杀系统聊聊WebSocket推送通知

前言 秒杀架构到后期,我们采用了消息队列的形式实现抢购逻辑,那么之前抛出过这样一个问题:消息队列异步处理完每个用户请求后,如何通知给相应用户秒杀成功? 场景映射 首先,我们举一个生...

小柒2012
07/19
0
0
从构建分布式秒杀系统聊聊WebSocket推送通知 编辑 删除

前言 秒杀架构到后期,我们采用了消息队列的形式实现抢购逻辑,那么之前抛出过这样一个问题:消息队列异步处理完每个用户请求后,如何通知给相应用户秒杀成功? 场景映射 首先,我们举一个生...

小柒2012
07/18
0
0
漫扯:从polling到Websocket

Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response。这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息。。。 轮询   老大发火了,小...

i33
2014/08/01
0
0
从HTML5 WebSocket到Socket.io

HTML5 WebSocket 作为新一代的web标准,HTML5为我们提供了很多有用的东西,比如canvas,本地存储(已经分离出去了),多媒体编程接口,当然还有我们的WebSocket。WebSocket是HTML5开始提供的...

Srtian
05/11
0
0
WebSocket 是什么原理?为什么可以实现持久连接?

作者:腾讯云技术社区 众所周知,Web应用的通信过程通常是客户端通过浏览器发出一个请求,服务器端接收请求后进行处理并返回结果给客户端,客户端浏览器将信息呈现。这种机制对于信息变化不是...

xiaogong1688
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
14
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
4
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部