GoEasy的使用

GoEasy介绍

http请求短连接,一次请求响应后关闭,而GoEasy建立了客户端与服务器之间的长连接。

goeasy支持服务器到客户端的消息发布,客户端到客户端的消息发布

GoEasy用来做什么

入门

在官网注册一个账号可以免费使用:http://www.goeasy.io/

然后创建免费应用:

开发

1)导入依赖

        <!--GoEasy依赖-->
        <dependency>
            <groupId>io.goeasy</groupId>
            <artifactId>goeasy-sdk</artifactId>
            <version>0.3.8</version>
        </dependency>

<!--Goeasy长连接仓库-->
    <repositories>
        <repository>
            <id>goeasy</id>
            <name>goeasy</name>
            <url>http://maven.goeasy.io/content/repositories/releases/</url>
        </repository>
    </repositories>

2)请求以及参数说明

URL:

http(s)://

Method:

Post

参数:

参数名字 是否必需 描述
appkey 您的app key
channel 您的目标channel
content 推送的消息内容

appkey创建应用时生成,channel由个人定义。

服务器到客户端的消息推送

服务器程序, 将触发代码整合在业务代码中

其中Common key在应用中查看

        String jsonString = JSONObject.toJSONString(userDto);
        GoEasy goEasy = new GoEasy("http://rest-hangzhou.goeasy.io","Common key");
        System.out.println(jsonString);
        goEasy.publish("userana",jsonString);
前端
<script type="text/javascript">
    //GoEasy仅做监听,不做数据加载,触发时机为--用户最近的活跃度统计Controller触发
    var goEasy = new GoEasy({
        appkey: 'Common key'
    });

    goEasy.subscribe({
        channel: "",
        onMessage: function (message) {
            //console.log(message);
            var res = $.parseJSON(message.content);
            //console.log(res.data);
            //console.log(message.content.data);
            myChart.setOption({
                series: [{
                    name: '活跃用户',
                    data: res.data
                }]
            });
        }
    });
</script>

注意:请不要将goeasy.js下载到本地,GoEasy动态为不同浏览器和操作系统提供不同goeasy.js,使用下载到本地的goeasy.js,将会导致某些用户不能发送和接收消息。

客户端与客户端的通信

<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>聊天室</title>

    <link href="css/base.css" rel="stylesheet" type="text/css"/>
    <link href="css/index.css" rel="stylesheet" type="text/css"/>
    <link href="css/index_iphone.css" rel="stylesheet" type="text/css"/>
    <link href="css/index_1000.css" rel="stylesheet" type="text/css"/>
    <script type="text/javascript" src="http://cdn-hangzhou.goeasy.io/goeasy.js"></script>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript">

        var goEasy = new GoEasy({
            appkey: "xxxxxxxxxxxxxx"
        });

        //订阅消息
        goEasy.subscribe({
            channel: "messageChannel",
            onMessage: function (message) {
                //id选择器span显示消息
                console.log(message);
                $("#messageLoad").text(message.content);
            }
        });

        //发送消息
        function publishMessage() {
            var messageContent = $("#publishMessages").val();
            goEasy.publish({
                channel: "messageChannel",
                message: messageContent
            });
        }
    </script>
</head>
<body>

<div class="demos chatdiv">
    <div class="demos_con">
        <div id="chatScroll" class="chat J_chat">
            <div id="subscribeMessages" class="chat_auto J_chat_auto">
                &nbsp;
                <span id="messageLoad"></span>
            </div>
        </div>

        <div class="demos_condsend clearfix">
            <input class="demos_condsend_1 J_demos_condsend_1 fl" id="publishMessages" type="text"/>
            <button class="demos_condsend_2 fr" onclick="publishMessage();">发送</button>
        </div>
    </div>
</div>

<div class="partfw J_partfw">
    <div class="partf">
        <p class="partfp">© 2015-2018 DHG, All Rights Reserved&nbsp;&nbsp;&nbsp;&nbsp; Em
            <span style="display: none;">e</span>mail:<span style="display: none;">m</span> mzc
            <span style="display: none;">1</span>1997@<span style="display: none;">g</span>mai
            <span style="display: none;">l</span>.com</p>
    </div>
</div>
</body>
</html>

测试,两个浏览器打开同一个页面 对话。

猜你喜欢

转载自www.cnblogs.com/mzc1997/p/10206930.html