使用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上.当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数 ...
随机推荐
- [Linux/Bash/Shell]curl & wget
1 参考文献 curl 的用法指南 - 阮一峰 curl网站开发指南 - 阮一峰 Curl Cookbook https://curl.haxx.se/ linux curl 命令详解,以及实例 2 ...
- Centos7 安装 codeblocks 搭建 C++ 集成开发环境
1 安装GCC和G++ yum install gcc yum install gcc-c++ 2 安装gtk-devel 默认没有安装开发所需要的文档 yum install gtk* 3 安装wx ...
- LeeCode 栈与队列问题(一)
LeeCode 20: 有效的括号 题目描述 给定一个只包括 '(', ')', '{', '}', '[', ']' 的字符串s,判断字符串是否有效. 有效字符串满足: 左括号必须用相同类型的右括号 ...
- 这个小项目,上周被国外 AI 新闻网站报道,前些天又上了 github 热榜
疫情期间在校花了几个月时间,写了这个小项目,是关于音频特征提取和分析的,自己是 AI 专业研究音频的,但受限于对音频特征的理解,做研究时总感觉缺乏"底料",所以当做是学习练手做了这 ...
- 深度学习--实战 LeNet5
深度学习--实战 LeNet5 数据集 数据集选用CIFAR-10的数据集,Cifar-10 是由 Hinton 的学生 Alex Krizhevsky.Ilya Sutskever 收集的一个用于普 ...
- 获取电脑的网络连接状态(三)Ping
网络连接判断,使用ping测试获取: 1 private static async Task<bool> IsPingSuccess() 2 { 3 try 4 { 5 using (Pi ...
- Python LOG-日志
LOG https://www.cnblogs.com/yyds/p/6901864.html logging logging模块提供模块级别的函数记录日志 包括四大组件 1. 日志相关概念 日志 日 ...
- [Pytorch框架] 4.2.1 使用Visdom在 PyTorch 中进行可视化
文章目录 4.2.1 使用Visdom在 PyTorch 中进行可视化 安装 坑 基本概念 Environments Panes VIEW 可视化接口 使用 绘制简单的图形 更新损失函数 import ...
- [OpenCV-Python] 19 Canny 边缘检测
文章目录 OpenCV-Python:IV OpenCV中的图像处理 19 Canny 边缘检测 19.1 原理 19.1.1 噪声去除 19.1.2 计算图像梯度 19.1.3 非极大值抑制 19. ...
- 几行代码教你快速创建scrapy项目,非常实用建议收藏!
import shutil,os修改settings.py def config(scrapy_path,project_name): judge=input("是否自动修改配置?是:yes ...