用GoEasy推送實現Java實時推送


前段時間客戶有個需求他希望他在后台管理頁面發布一個消息,所有用這個系統的用戶無論在哪個頁面都能及時收到他發布的信息,以前對於類似需求在少量頁面接收的前提下,我一般采用ajax定時去服務器pull信息下來,如果有就顯示出來,但是這種方式非常消耗客戶端的資源,后來我在網上查詢到了一個第三方的免費推送服務-GoEasy push, 它可以滿足我的需求,下面是如何用GoEasy進行信息推送及接收:

 JAVA Web實時消息后台服務器推送技術

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

           <script type="text/javascript" src="https://cdn.goeasy.io/goeasy.js"></script>

    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

也希望這篇文章對其他需要做推送的朋友有幫助!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM