GoEasy使用详解

GoEasy

1.GoEasy介绍

GoEasy专注于服务器与浏览器,浏览器与浏览器之间消息推送,完美兼容世界上的绝大多数浏览器,包括IE6, IE7之类的非常古老的浏览器。 GoEasy采用 发布/订阅 的消息模式,帮助您非常轻松的实现一对一,一对多的通信。

GoEasy是一款强大易用的websocket消息推送服务,web端,移动端都可以进行推送,这是个收费的产品,当然提供12个月免费试用期,针对不同的并发数量和消息发送条数都有价格明细。它有如下几个优点。

1)完美支持99.9%的浏览器,即使非常古老的IE6,IE7,IE8;

2)任何开发语言PHP 、C# 、Java 、Ruby 、Python 、C(++) 、node.js …

3)它在全球有5—6个数据中心,保证推送的实时可达性,实时高效;

4)独创的OTP技术+Https提高消息安全隐私;

5)稳定可靠,简单易用。

6)不但支持从服务端到客户端的推送,还支持从客户端到客户端的推送。更多资料可以去官网

http://goeasy.io了解。

官网:https://goeasy.io/www/home , 官网有文档(有中文文档)和demo, 下面记录一下我使用的步骤:

2.使用步骤

2.1.官网注册账号

账号:1787845073@qq.com 密码:aaa

2.2.新建一个免费的application,其中application name就是下面的channel,这时,系统会分配给你appkey

应用分免费版的和收费版(免费版最多只能创建2个应用),我这里用的是免费版。创建完应用之后如下图。

其中。appkey是验证用户的有效性的唯一标识。系统会生成两个keys,一个Super key和一个Subscribe key;它们的区别在于前者既可以订阅又可以推送,但后者只能用于订阅。

App keys:

2.3.导入SDK

Javascript:

 1 <script type="text/javascript" src="http(s)://<CDN Host>/goeasy.js"></script>

 2 <script type="text/javascript">
 3     var goEasy = new GoEasy({
 4         appkey: "您的app key"
 5     });
 6     goEasy.subscribe({
 7         channel:"myChannel",
 8         onMessage:function(message){
 9             alert(message.content);
10         }
11     });
12 </script>

注意:

  1. 请不要将goeasy.js下载到本地,GoEasy动态为不同浏览器提供不同内容的goeasy.js,使用下载到本地的goeasy.js,将会导致某些浏览器 不能发送和接收消息。
  2. 如果您的应用程序需要支持Windows XP用户, 请务必使用HTTP来获取js文件,GoEasy将于2016年9月22日升级所有 SSL证书至SHA-2,届时起Windows XP用户将无法通过HTTPS连接GoEasy。

Java

方式一: 手动下载sdk

goeasy-sdk.jar

下载依赖包: gson-2.3.1.jar, slf4j-api-1.7.2.jar

方式二: Maven

添加goeasy仓库到您的pom.xml文件:

<repositories>
    <repository>
        <id>goeasy</id>
        <name>goeasy</name>
        <url>
            http://maven.goeasy.io/content/repositories/releases/
        </url>
    </repository>
</repositories>

然后添加依赖:

<dependencies>
    <dependency>
        <groupId>io.goeasy</groupId>
        <artifactId>goeasy-sdk</artifactId>
        <version>0.3.8</version>
    </dependency>
</dependencies>

3.服务器发送(发布)消息

RESTful API

URL:

    http(s)://<REST Host>/publish

Method:

Post

参数:

名称 必要 描述
appkey 是 您的appkey
channel 是 channel
content 是 您要发送的消息内容

返回值:

    {
        "code" : 200,
        "content" : "OK"
    }
Copy

返回值说明

Code Content 状态
200 OK 成功
401 Unauthorized app key app key错误或者过期
400 <具体错误信息> 参数错误或不完整
408 Unreachable or timeout 发送数据到GoEasy失败,可能是因为网络原因,不能与GoEasy建立连接
500 Internal Server Error GoEasy服务器错误
900 Over max concurrent connections 超过最大连接数
901 No remain messages 消息数量已用完
902 Please encode parameters with utf8 restful请求参数没有使用utf8进行编码
999 Your GoEasy application is expired,please contact your administrator to renew it 您的GoEasy application已经过期,请联系您们的管理人员对其进行续费

对于服务器端,目前GoEasy仅提供Java 的SDK, 未来会提供更多其他语言的SDK,敬请期待。

4.浏览器发送(发布)消息和接收消息

4.1.发送(发布)消息

Java

GoEasy goEasy = new GoEasy( "http(s)://<REST Host>", "my_appkey");
goEasy.publish("my_channel","Hello, GoEasy!");

JavaScript

    var goEasy = new GoEasy({
        appkey: "my_appkey"
    });
    //GoEasy-OTP可以对appkey进行有效保护,详情请参考  
    goEasy.publish({
        channel: "my_channel",
        message: "Hello, GoEasy!"
    });

GoEasy-OTP

4.2.接收(订阅)消息

JavaScript

    var goEasy = new GoEasy({
        appkey: "my_appkey"
    });
    goEasy.subscribe({
        channel: "my_channel",
        onMessage: function (message) {
            alert("Channel:" + message.channel + " content:" + message.content);
        }
    });

4.3.取消订阅

JavaScript

    goEasy.unsubscribe ({
        channel: "my_channel"
    });

4.4代码测试

后台发送(发布)消息

//代码测试
@Test
public void Test(){
    // 参数:服务器地址    ,  AppKey:commonKey
    GoEasy goEasy = new GoEasy( "http://rest-hangzhou.goeasy.io", "BC-78534f92f1204dd595be0e4cbdb8714b"); 

    //参数:管道标识,发送内容
    goEasy.publish("my_channel","Hello, GoEasy!"); 	
}

jsp页面接收(订阅)消息

<--代码测试-->
<script src="http://cdn-hangzhou.goeasy.io/goeasy.js"></script>  
<script type="text/javascript">
    var goEasy = new GoEasy({ appkey: "BC-78534f92f1204dd595be0e4cbdb8714b"});          
    goEasy.subscribe({
    channel: "my_channel",              
    onMessage: function (message) {
    alert("Channel:" + message.channel + " content:" + message.content);
    }
    }); 
</script> 

动态echarts演示

@Test   
public void Test2(){
		
	while(true){
		
		Random random = new Random();
		
		int[] a={random.nextInt(10),random.nextInt(15),random.nextInt(20),random.nextInt(30),random.nextInt(10)};
			
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("data", a);
		String s = jsonObject.toJSONString();
			
		// 参数:服务器地址    ,  AppKey:commonKey
		GoEasy goEasy = new GoEasy( "http://rest-hangzhou.goeasy.io", "BC-78534f92f1204dd595be0e4cbdb8714b"); 
			
		//参数:管道标识,发送内容
		goEasy.publish("my_channel",s); 	
			
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}	
}

<html>
  <head>
    <!-- 引入 echarts.js -->
    <script src="${pageContext.request.contextPath}/js/echarts.min.js"></script>
    <script type="text/javascript" src="../js/jquery.min.js"></script> 
    <script src="http://cdn-hangzhou.goeasy.io/goeasy.js."></script>  
    <script type="text/javascript">
	 
	    $(function(){
	     
	        // 基于准备好的dom,初始化echarts实例
	        var myChart = echarts.init(document.getElementById('main'));
	        
			 var goEasy = new GoEasy({ appkey: "BC-78534f92f1204dd595be0e4cbdb8714b"});          
		 	 goEasy.subscribe({
				channel: "my_channel",              
				onMessage: function (message) {
				
					var data=JSON.parse(message.content);
						//console.log(data);
					
					// 指定图表的配置项和数据
			        var option = {
			            //标题
			            title: {
			                text: "每月注册用户统计图"
			            },
			            tooltip: {},  //鼠标提示  
			            legend: {     //选项卡
			                data:['柱状图','折线图']
			            },
			            xAxis: {   //横坐标
			                data: ["衬衫","毛衣","鞋子","裤子","袜子"]
			            },
			            yAxis: {},   //纵坐标
			            series: [{   //数据系列
			                name: "柱状图",   //选项卡名字
			                type: 'bar',  //柱状图
			                data: data.data
			            },{   //数据系列
			                name: "折线图",
			                type: 'line',  //折线图
			                data: data.data
			            }]
			        };
				        
			        // 使用刚指定的配置项和数据显示图表。
	    			myChart.setOption(option);
				}
			 }); 

	    });

   </script>  
  </head>
  
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>

</body>
</html>
  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值