使用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上.当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数 ...
随机推荐
- Python property、setter、deleter
面向对象封装特点之一就是通过实现好的方法来访问,限制对数据的不合理访问,把对象状态私有化,仅供类的内部进行操作 下方示例,Test方法的number属性类实例的时候传递1,number是一个公开属性, ...
- Android 通过scheme跳转支付宝实现支付
原文地址: Android 通过scheme跳转支付宝实现支付 - Stars-One的杂货小窝 需求的来源是支付功能,由于支付宝不允许个人开通具有webhook的支付服务,所以是对接了一个支付系统( ...
- vue 项目全局修改element-ui的样式/主题颜色
一,安装sass 1 npm i sass sass-loader --save 二,安装element主题生成工具 // 全局安装npm i element-theme --save // 安装主体 ...
- [OpenCV-Python] 21 OpenCV 中的轮廓
文章目录 OpenCV-Python:IV OpenCV中的图像处理 21 OpenCV 中的轮廓 21.1 初识轮廓 21.1.1 什么是轮廓 21.1.2 怎样绘制轮廓 21.1.3 轮廓的近似方 ...
- Pytorch数据操作
1.Pytorch中tensor的生成与访问 可以使用arange()创建一个张量:如,torch.arange(12)创建0开始的前12个整数: 除非特殊指定,否则新的张量将存放在内存中,并采用CP ...
- 2022-06-10:薯队长从北向南穿过一片红薯地(南北长M,东西宽N),红薯地被划分为1x1的方格, 他可以从北边的任何一个格子出发,到达南边的任何一个格子, 但每一步只能走到东南、正南、西南方向的
2022-06-10:薯队长从北向南穿过一片红薯地(南北长M,东西宽N),红薯地被划分为1x1的方格, 他可以从北边的任何一个格子出发,到达南边的任何一个格子, 但每一步只能走到东南.正南.西南方向的 ...
- 2022-05-26:void add(int L, int R, int C)代表在arr[L...R]上每个数加C, int get(int L, int R)代表查询arr[L...R]上的累加
2022-05-26:void add(int L, int R, int C)代表在arr[L-R]上每个数加C, int get(int L, int R)代表查询arr[L-R]上的累加和, 假 ...
- 2021-03-26:给定一个正整数N,表示有N份青草统一堆放在仓库里。有一只牛和一只羊,牛先吃,羊后吃,它俩轮流吃草。不管是牛还是羊,每一轮能吃的草量必须是:1,4,16,64…(4的某次方)。谁最先把草吃完,谁获胜。假设牛和羊都绝顶聪明,都想赢,都会做出理性的决定。根据唯一的参数N,返回谁会赢。
2021-03-26:给定一个正整数N,表示有N份青草统一堆放在仓库里.有一只牛和一只羊,牛先吃,羊后吃,它俩轮流吃草.不管是牛还是羊,每一轮能吃的草量必须是:1,4,16,64-(4的某次方).谁最 ...
- 2021-08-17:谷歌面试题扩展版,面值为1~N的牌组成一组,每次你从组里等概率的抽出1~N中的一张,下次抽会换一个新的组,有无限组,当累加和<a时,你将一直抽牌,当累加和>=a且<b时,你将获胜
2021-08-17:谷歌面试题扩展版,面值为1N的牌组成一组,每次你从组里等概率的抽出1N中的一张,下次抽会换一个新的组,有无限组,当累加和<a时,你将一直抽牌,当累加和>=a且< ...
- 2021-11-04:计算右侧小于当前元素的个数。给你`一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是 nums[i] 右
2021-11-04:计算右侧小于当前元素的个数.给你`一个整数数组 nums ,按要求返回一个新数组 counts .数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧 ...