使用GoEasy快速實現Android原生app中的websocket消息推送

来源:https://www.cnblogs.com/goeasy-websocket/archive/2023/07/05/17529098.html
-Advertisement-
Play Games

摘要: GoEasy帶來了一項令開發者振奮的消息:全面支持Android原生平臺!現在,您可以在Android應用中使用最酷炫的實時通信功能,藉助GoEasy輕鬆實現消息的發送和接收。本文將帶您領略GoEasy最新版本的威力,為您的應用增添一抹鮮活的互動色彩。 嗨,開發者朋友們!是時候展現您的技術才 ...


摘要:
GoEasy帶來了一項令開發者振奮的消息:全面支持Android原生平臺!現在,您可以在Android應用中使用最酷炫的實時通信功能,藉助GoEasy輕鬆實現消息的發送和接收。本文將帶您領略GoEasy最新版本的威力,為您的應用增添一抹鮮活的互動色彩。

嗨,開發者朋友們!是時候展現您的技術才華,讓您的Android應用在實時通信領域熠熠生輝了!GoEasy最新版本為您呈現了一系列令人激動的功能和特性,基於訂閱推送模式就可以輕鬆實現,現在就讓我們一起來探索一下吧!

1. 集成GoEasy SDK

集成GoEasy SDK從來都是小菜一碟!只需幾個簡單的步驟,就能讓您的Android應用擁有強大的實時通信功能。通過Gradle文件添加依賴項,初始化SDK並配置AppKey和AppSecret,您就可以輕鬆開啟GoEasy的魔法之旅了。

1.1. 添加SDK依賴

    dependencies {
        implementation 'io.goeasy:goeasy-client-java:0.1.4'
    }

1.2. 初始化GoEasy,並建立GoEasy連接

在使用GoEasy進行消息的接收和發送之前,需要先初始化GoEasy對象, 並與GoEasy伺服器建立websocket長連接

初始化GoEasy

    //初始化GoEasy,新加坡host:singapore.goeasy.io
    GoEasy.init(“hangzhou.goeasy.io”, "您的appkey", this.getApplicationContext());

建立GoEasy websocket長連接

    GoEasy.connect(new ConnectEventListener() {

        @Override
        public void onSuccess(GResult data) {
            Log.i("GoEasy","連接成功");
        }

        @Override
        public void onFailed(GResult error) {
            Log.i("GoEasy","Failed to connect GoEasy, code:" + error.getCode() + ",error:" + error.getData());
        }

        @Override
        public void onProgress(int attempts) {
            Log.i("GoEasy", "GoEasy connect progress attempts: " + attempts);
        }
    });

2. 訂閱channel 並接收實時消息

GoEasy為Android原生平臺帶來了令人垂涎的消息接收功能。您可以訂閱特定頻道(channel),隨時接收實時消息的涌入。當新消息到達時,GoEasy SDK會立即激活onMessage回調函數,讓您可以在第一時間捕捉到新鮮的消息,為用戶帶來極致體驗。

    // test_channel 為定義的channel名稱, 訂閱推送模式根據channel的值來決定哪些客戶端可以接收來自這個channel推送的消息,可以為任意的字元串
    GPubSub.subscribe("test_channel", new SubscribeEventListener() {

        @Override
        public void onMessage(PubSubMessage message) {
            // 實時消息會自動觸發onMessage回調,您可以在此處對收到的實時消息做進一步處理
            Log.i("GoEasy",message.getContent());
        }

        @Override
        public void onSuccess(GResult data) {
            Log.i("GoEasy","訂閱成功");
        }

        @Override
        public void onFailed(GResult error) {
            Log.i("GoEasy","訂閱失敗,錯誤編碼:" + error.getCode() + " 錯誤信息:" + error.getData());
        }
    });

3. 發送消息

現在,您可以在您的Android應用中以驚人的速度和效率發送消息!藉助GoEasy提供的API,您可以將消息直達特定用戶、頻道或甚至全網廣播,無論是活動通知、個性化推送還是用戶互動,您都能馬到功成!

    // test_channel 為channel的名稱,推送之後,所有訂閱了“test_channel”的客戶端都可以收到這條消息
    GPubSub.publish("test_channel", content, new GoEasyEventListener() {

        @Override
        public void onSuccess(GResult gResult) {
            Log.i("GoEasy", gResult.getData().toString());
        }

        @Override
        public void onFailed(GResult error) {
            Log.i("GoEasy","消息發送失敗,錯誤編碼:" + error.getCode() + " 錯誤信息:" + error.getData());
        }
    });

4. 停止接收某個channel的消息 (取消訂閱channel)

不想繼續接收消息,很簡單,您可以直接取消訂閱這個channel的消息。

    GPubSub.unsubscribe("test_channel", new GoEasyEventListener() {
        @Override
        public void onSuccess(GResult data) {
            Log.i("GoEasy", "unsubscribe Success");
        }

        @Override
        public void onFailed(GResult error) {
            Log.i("GoEasy", "unsubscribe Failed, code:" + error.getCode() + " content:" + error.getData());
        }
    });

5. 斷開與GoEasy伺服器的websocket連接

如果斷開了GoEasy的連接,這個客戶端所有訂閱的channel都會失效。

    GoEasy.disconnect(new GoEasyEventListener() {
        @Override
        public void onSuccess(GResult data) {
            Log.i("GoEasy", "Disconnect Success");
        }

        @Override
        public void onFailed(GResult error) {
            Log.i("GoEasy", "Disconnect Failed, code:" + error.getCode() + " content:" + error.getData());
        }
    });

Android websocket demo 源碼下載:
https://gitee.com/goeasy-io/helloworld/tree/master/android
https://github.com/goeasy-io/websocket-helloworld/tree/master/android

通過GoEasy實現實時消息通信,您可以為用戶帶來獨特的互動體驗。無論是個性化的促銷推送、活動倒計時通知還是用戶之間的實時聊天,您都能以輕鬆有趣的方式吸引用戶,並激發他們的參與度。

GoEasy現在全面支持Android原生平臺!這意味著,您不僅可以在Web上體驗到GoEasy的魅力,現在您的Android應用也能與GoEasy的實時通信功能攜手同行!讓您的應用在Android平臺上獨領風騷,與用戶進行更親密、更即時的互動。

結論:
GoEasy最新版本的到來為Android開發者們帶來了福音。藉助GoEasy的強大實時通信功能,您可以為您的Android應用增添活力和創意,提升用戶參與度和用戶體驗。不僅如此,GoEasy全面支持Android原生平臺,為您的應用開闢了新的無限可能性。現在就加入GoEasy的大家庭,釋放您的創造力,讓您的應用在實時通信的海洋中航行!快來下載GoEasy最新版本,開啟您的激動人心的開發之旅吧!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • > 本篇內容主要來源於自己學習的視頻,如有侵權,請聯繫刪除,謝謝。 ### 1、etcd讀請求概覽 etcd是典型的`讀多寫少`存儲,在我們實際業務場景中,讀一般占據2/3以上的請求。一個讀 請求從client通過`Round-robin(輪詢)`負載均衡演算法,選擇一個etcd server節點,發 ...
  • # Shuffle的深入理解 什麼是Shuffle,本意為洗牌,在數據處理領域裡面,意為將數打散。 問題:shuffle一定有網路傳輸嗎?有網路傳輸的一定是Shuffle嗎? ## Shuffle的概念 通過網路將數據傳輸到多台機器,數據被打散,但是有網路傳輸,不一定就有shuffle,Shuffl ...
  • 向量資料庫是一種特殊類型的資料庫,它可以存儲和處理向量數據。向量數據通常用於表示多維度的數據點,例如在機器學習和人工智慧中使用的數據。在向量資料庫中,數據被表示為向量,這些向量可以在多維空間中進行比較和搜索。 ...
  • 隨著業務的發展,[實時場景](https://www.dtstack.com/dtinsight/streamworks?src=szsm)在各個⾏業中變得越來越重要。⽆論是⾦融、電商還是物流,實時數據處理都成為了其中的關鍵環節。Flink 憑藉其強⼤的[流處理特性](https://www.dts ...
  • # 一. MySQL體繫結構 ![](https://tcs-devops.aliyuncs.com/storage/112v957e3962f4a8a6d4d8eb1a194d885fa0?Signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBcHB ...
  • 摘要:隨著雲計算的興起和滲透,雲數倉成為了數倉技術演進的新階段,並且逐漸成為了眾多企業的共同選擇。 本文分享自華為雲社區《從GaussDB(DWS)的技術演進,看數據倉庫的積澱與新生》,作者: 華為雲頭條。 數據驅動著現代商業的發展 今天,無論在製造、零售、物流 還是在互聯網、金融等行業 數據都變得 ...
  • ## 一、問題發現 在一次開發中在sp中使用`MySQL PREPARE`以後,使用`match AGAINST`語句作為`prepare stmt`的參數後,發現執行第二遍call會導致資料庫crash,於是開始動手調查問題發生的原因。 > 註:本次使用的 MySQL 資料庫版本為最新的debug ...
  • 由於商品變更MQ消息量巨大,為了提升更新ES的性能,防止出現MQ消息積壓問題,所以本系統使用了BulkProcessor進行批量非同步更新。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...