前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >替代Websocket的解决方案:GoEasy

替代Websocket的解决方案:GoEasy

作者头像
ZONGLYN
发布2019-08-08 10:03:15
5.2K0
发布2019-08-08 10:03:15
举报
文章被收录于专栏:程序萌部落程序萌部落

写在前面

GoEasy这个库的适用场景:同Websocket的场景 在后台使用例如Java进行逻辑处理后将变量的值传入前台,前台不用发起请求即可接收后台发布的数据, 整个流程与Redis的Pub和Sub过程类似 整个交互类似Socket的长连接,前台首次调用不需要请求后台。 非常适合监控后台参数等场景;

但是: GoEasy最大的问题:传输数据大小有限制,大概只有几千字符!! 超出大小的传输部分会被丢弃从而会报错。

从GoEasy获取appkey

appkey是验证用户的有效性的唯一标识。

注册账号。 GoEasy官网:http://goeasy.io 用注册好的账号登录到GoEasy的后台管理系统,创建您自己应用(application). Application创建好之后系统会自动为您生成appkey 系统会生成两个keys,一个Super key和一个Subscribe key;它们的区别在于前者既可以订阅又可以推送,但后者只能用于订阅。

GoEasy实现向特定用户群推送的原理

知道了他们的推送原理,可以更加方便我们了解他们的服务,以及理解我们写的代码。其实原理很简单,只需要确定哪些用户需要接收信息,然后让这些用户都订阅一个相同的channel(频道)。 然后再往这个平台上推送消息即可!所有关键在于channel,channel一致,则可以接收到信息,否则收不到!

对于订阅必须要的信息有:Appkey, channel

对于推送必须要的信息有:Appkey, channel, content

用GoEasy实现订阅(接收)的实例

代码语言:javascript
复制
<script type="text/javascript" src="https://cdn.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
             var goEasy = new GoEasy({appkey: 'your appkey'});
                                goEasy.subscribe({
                         channel: 'your_channel',
                         onMessage: function(message){
                                alert('接收到消息:'+message.content);
                                //拿到了信息之后,你可以做你任何想做的事
                         }
               });
</script>

有了这几行代码后,只要保证网络畅通的情况下,页面会自动弹出你从任何平台上推送的信息。

用GoEasy实现推送及接收的实例

目前GoEasy支持三种推送方式: Java后台推送(它们有提供JAVA SDK和 maven远程仓库), JS推送,RestAPI推送(有了RestAPI,我们就可以用PHP, .NET, Ruby…来推送信息了,很方便)

说了这么多,来我们看一下怎么用GoEasy的三种方式分别实现推送吧。

用GoEasy SDK推送
  1. Java SDK的获取方式,方式一,直接在goeasy的官网上进行下载;方式二,用maven远程库直接导入到项目中。尽管官网上已经做了相同的说明了,我这里还是把关键点帖出来,方便大家查看。

GoEasy SDK下载链接:http://maven.goeasy.io/service/local/artifact/maven/redirect?r=releases&g=io.goeasy&a=goeasy-sdk&v=0.3.3&e=jar

GoEasy远程maven库的配置:

代码语言:javascript
复制
<repository>
    <id>goeasy</id>
    <name>goeasy</name>
    <url>http://maven.goeasy.io/content/repositories/releases/</url>
</repository>
 …
<dependency>
    <groupId>io.goeasy</groupId>
    <artifactId>goeasy-sdk</artifactId>
    <version>0.3.3</version>
</dependency>

需要注意的是:GoEasy需要依赖两个额外的jar 包: gson.jar : http://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.3.1/gson-2.3.1.jar slf4j-api.jar : http://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar

  1. 实例化GoEasy对象1234GoEasy goEasy = new GoEasy("your appkey");``` 3. 推送消息

goEasy.publish(‘your_channel’, ‘First message’);

代码语言:javascript
复制
GoEasy goEasy = new GoEasy("your appkey");
``` 
3. 推送消息
代码语言:javascript
复制

#### JS推送
1. 引入goeasy.js

<br> var goEasy = new GoEasy({appkey: ‘your appkey’});<br> goEasy. publish ({<br> channel: ‘your_channel’,<br> message: ‘Second message!’<br> });<br> ```

用RestAPI进行推送

URL: https://goeasy.io/goeasy/publish Method: Post 参数:appkey, channel, content 例如:https://goeasy.io/goeasy/publish?appkey={your_appkey}&channel={your_channel}&content={your_message}

GoEasy官网:http://goeasy.io 快速入门:http://goeasy.io/www/started 文档下载:http://goeasy.io/www/documents

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 从GoEasy获取appkey
  • GoEasy实现向特定用户群推送的原理
  • 用GoEasy实现订阅(接收)的实例
  • 用GoEasy实现推送及接收的实例
    • 用GoEasy SDK推送
      • 用RestAPI进行推送
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档