使用GoEasy快速实现Android原生app中的websocket消息推送
摘要:
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最新版本,开启您的激动人心的开发之旅吧!
使用GoEasy快速实现Android原生app中的websocket消息推送的更多相关文章
- node.js Websocket消息推送---GoEasy
		Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ... 
- C(++) Websocket消息推送---GoEasy
		Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ... 
- SignalR 中丰富多彩的消息推送方式
		在上一篇 SignalR 文章中,演示了如何通过 SignalR 实现了简单的聊天室功能:本着简洁就是美的原则,这一篇我们也来聊聊在 SignalR 中的用户和组的概念,理解这些基础知识有助于更好的开 ... 
- django中实现微信消息推送
		-公众号(不能主动给用户发消息) -认证的公众号:需要营业执照,需要交钱,可以发多篇文章 -未认证的公众号:一天只能发一篇文章 -服务号(微信推送) -需要申请,需要认证 -可以主动给用户推送消息 - ... 
- SSM项目使用GoEasy 实现web消息推送服务
		一.背景 之前项目需要做一个推送功能,最开始我用websocket实现我的功能.使用websocket的好处是免费自主开发,但是有几个问题:1)浏览器的兼容问题,尤其是低版本的ie:2)因为是推送 ... 
- Android P正式版即将到来:后台应用保活、消息推送的真正噩梦
		1.前言 对于广大Android开发者来说,Android O(即Android 8.0)还没玩热,Andriod P(即Andriod 9.0)又要来了. 下图上谷歌官方公布的Android P ... 
- 拾人牙慧篇之——基于HTML5中websocket来实现消息推送功能
		一.写在前面 要求做一个,后台发布信息,前台能即时得到通知的消息推送功能.网上搜了也有很多方式,ajax的定时询问,Comet方式,Server-Sent方式,以及websocket.表示除了定时询问 ... 
- Android原生APP内分享
		Android原生APP内分享,可实现数据分享以及assets文件夹分享及私有文件分享 项目地址:https://github.com/json-pu/AndroidAppShare.git 
- APICloud原生APP中ajax需要用api.ajax
		报错截屏: APICloud原生APP中ajax请求需要用api.ajax(api对象的ajax方法来替代),否则会将引起请求失败. APICloud api.ajax 
- android系统下消息推送机制
		一.推送方式简介: 当前随着移动互联网的不断加速,消息推送的功能越来越普遍,不仅仅是应用在邮件推送上了,更多的体现在手机的APP上.当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数 ... 
随机推荐
- 四月二十七日java基础知识
			1.多线程的主要目的是讲一个程序中的各个"程序段"并发化2.并行执行通常表示为同一时刻有多个代码在处理器上执行3.并发执行通常表示为在单个处理器上,同一时刻只执行一个代码,但在一个 ... 
- Terraform 系列-Terraform 简介
			系列文章 Terraform 系列文章 前言 最近在使用 Terraform 来置备 OCI 的 Always Free Tier, 发现它非常好用.总结学习下:Terraform 的基础知识. 什么 ... 
- Albert理论详解:用矩阵分解与跨层参数共享减少参数量
			1.介绍 Albert是Bert的一个变种,它在Bert的基础上减少了参数量,使整个模型更加的"轻量化",同时也保持了Bert的性能,但值得注意的是,Albert虽然显著地减少了参 ... 
- 【对比】文心一言对飚ChatGPT实操对比体验
			前言 缘由 百度[文心一言]体验申请通过 本狗中午干饭时,天降短信,告知可以体验文心一言,苦等一个月的实操终于到来.心中这好奇的对比心理油然而生,到底是老美的[ChatGPT]厉害,还是咱度娘的[文心 ... 
- [OpenCV-Python] 9 图像的基础操作
			文章目录 OpenCV-Python: 核心操作 9 图像的基础操作 9.1 获取并修改像素值 9.2 获取图像属性 9.3 图像 ROI 9.4 拆分及合并图像通道 9.5 为图像扩边(填充) Op ... 
- [ [Ynoi2013] 无力回天 NOI2017 ] 解题报告
			[Ynoi2013] 无力回天 NOI2017 首先看到异或,想到能维护异或的东西就那几样(线性基/01trie/数位 dp/FWT),再看到求选任意个数后的异或最大值,线性基无疑了. 这时再看还要维 ... 
- Comparator之用最少数量的箭引爆气球
			文章目录 前言 关于Comparator 原题 前言 今天刷个题,遇到一个很有趣的问题,关于Comparator的使用,感觉也是一个关于写代码的一些小细节的问题 关于Comparator Compar ... 
- Grafana 系列-统一展示-2-Prometheus 数据源
			系列文章 Grafana 系列文章 Grafana Prometheus 数据源 Grafana 提供了对 Prometheus 的内置支持.本文会介绍 Grafana Prometheus(也包括 ... 
- 2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢。 返回先手赢还是后手赢。
			2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢. 返回先手赢还是后手赢. ... 
- 2021-06-01:K个逆序对数组。给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数。逆序对的定义如下:对于数组的第i个和第 j个元素,如果满
			2021-06-01:K个逆序对数组.给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数.逆序对的定义如下:对于数组的第i个和第 j个元素,如果满 ... 
