zoukankan      html  css  js  c++  java
  • 实时推送

    前段时间客户有个需求他希望他在后台管理页面发布一个消息,所有用这个系统的用户无论在哪个页面都能及时收到他发布的信息,以前对于类似需求在少量 页面接收的前提下,我一般采用ajax定时去服务器pull信息下来,如果有就显示出来,但是这种方式非常消耗客户端的资源,后来我在网上查询到了一个第 三方的免费推送服务-GoEasy push, 它可以满足我的需求,下面是如何用GoEasy进行信息推送及接收:

    1. 首先我需要在GoEasy官网上注册一个账号,注册完毕后,我可以自己添加application,application添加完成后,GoEasy会自动帮我生成两个key,一个是Super key, 另一个是Subscribe key。
      GoEasy官网:https://goeasy.io
      Super key:用于推送或接收
      Subscribe key:仅用于接收,不能用来推送信息
      这两个key相当于使用GoEasy服务的密码。
    2. 在java后台用super key推送客户发布的消息
      2.1. 在开始写代码之前,我们需要从GoEasy官网上下载一个jar包并引入到项目中。
      2.2. 这里不方便展示我们项目的源码,我将用一个JUnit方法来代替:
         public void testPublishMessageInGoEasy(){
         GoEasy goEasy = new GoEasy("your super key");
         goEasy.publish("your_channel","your message");
         }
         注意:这里只能用你的super key, “your_channel”--你可以随意命名(最好是有意义的名字),channel非常重要,它决定到底哪些页面需要接收你发的消息。
    3. 在jsp页面里接收推送消息,由于客户要求每个用户在任意页面都需要能接收到该消息,我把接收信息的部分的代码放在了main.jsp,所有的页面都引入了这个jsp页面。下面是在main.jsp接收信息的代码:
      3.1. 引入goeasy.js

      3.2. 初始化GoEasy对象并订阅channel (订阅的channel必须与推送消息时的channel一致!)
      var goeasy = new GoEasy({
      appkey: 'your super key or your subscribe key',
      });
      goeasy.subscribe({
      channel: 'your_channel',
                onMessage: function (result) {
                alert("You hava a new message: " + result.content);
                   }
         });
      代码部分就完成了, 你可以先打开一些页面,然后在运行JUnit 测试方法,可以看到所有打开的页面都收到从Junit test里推送出来的消息。
      GoEasy对推送,连接,订阅方法提供了一些回调函数,用于满足我们不同的需求,更多的请参照他们的文档(有中英文版本的哈) https://goeasy.io/www/docs.jsp
  • 相关阅读:
    比较全的JS checkbox全选、取消全选、删除功能代码
    JS下高效拼装字符串的几种方法比较与测试代码
    jQuery操作 input type=checkbox的实现代码
    禁用和选中所有页面上的复选框。
    jquery实现radio按纽全不选和checkbox全选的实例
    Javascript的四种继承方式
    javascript绑定时间 含(IE)
    input中如何输入逆写的中文句子
    清除浮动
    关于iOS9中的App Transport Security相关说明及适配(转)
  • 原文地址:https://www.cnblogs.com/dry0515/p/5168188.html
Copyright © 2011-2022 走看看