androidxmpp的简单介绍

android消息推送GCM、XMPP、MQTT三种方案的优劣是什么?

android消息推送GCM、XMPP、MQTT三种方案的优劣如下:

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站制作、黄平网络推广、成都小程序开发、黄平网络营销、黄平企业策划、黄平品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供黄平建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

1、GCM

(1)优点:提供的服务、原生、简单,无需实现和部署的服务端。

(2)缺点:Android版本限制(必须大于2.2版本),该服务在国内不够稳定、需要用户绑定相关的Google帐号,而且只受限于Google。

2、XMPP

(1)优点:成熟、强大、可扩展也性强、目前主要应用于聊天系统中,且已有开源的Java版的开发实例androidpn。

(2)缺点:协议较复杂、冗余(基于XML)、也比较费流量和费电,部署硬件成本高。

3、MQTT

(1)优点:简洁、小巧、可扩展性强、是比较省流量、省电。目前已有C++版的服务端组件rsmb。

(2)缺点:不够成熟、实现起来较复杂、服务端组件rsmb不开源,也是部署硬件成本较高。

消息推送软件可以使用深圳极光的。极光成立于2011年;凭借领先的人工智能及机器学习技术,极光将在APP消息推送、用户增长与活跃等方面为客户提供服务。

Android 几种消息推送方案总结

Android 几种消息推送方案总结:

一、使用GCM(Google Cloude Messaging)

Android自带的推送GCM可以帮助开发人员给他们的Android应用程序发送数据。它是一个轻量级的消息,告诉Android应用程序有新的数据要从服务器获取,或者是一个消息,其中包含了4KB的payload data(像即时通讯这类应用程序可以直接使用该payload消息)。

GCM服务处理排队的消息,并把消息传递到目标设备上运行的Android应用程序。

二、使用XMPP协议(Openfire+Spark+Smark)

XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性,有很强的可扩展性。包括上面讲的GCM服务器底层也是采用XMPP协议封装的。

三、使用MQTT协议(想了解更多可以看)轻量级的、基于代理的“发布/订阅”模式的消息传输协议。

四、HTTP轮循方式。定时向HTTP服务端接口(Web Service API)获取最新消息。

五、采用第三方服务。客户端只需要导入第三方提供的lib库,有第三方管理长连接,负责消息的接收/发送。同时对消息都有比较详细的报表数据,可以用于做数据分析、挖掘,改善用户体验。

中合对比还是采用第三方服务简捷高效。比如极光推送就很好用,极光推送搭建起一个高度稳定、可扩展的云端架构,极大地帮助移动应用开发者节约开发和维护的成本,轻松实现毫秒级的精准推送。

Android 基于XMPP Smack Openfire 小结怎么解决

 首先第一、与服务器建立好连接

关键代码:127.0.0.1为服务器IP,5222为服务器端口号

[java] view plain copy print?

/**

* 连接服务器

*

* @return

*/

public boolean conServer() {

ConnectionConfiguration config = new ConnectionConfiguration(

127.0.0.1, 5222);

/** 是否启用安全验证 */

config.setSASLAuthenticationEnabled(false);

/** 是否启用调试 */

// config.setDebuggerEnabled(true);

/** 创建connection链接 */

try {

connection = new XMPPConnection(config);

/** 建立连接 */

connection.connect();

return true;

} catch (XMPPException e) {

e.printStackTrace();

}

return false;

}

第二、实现注册

关键代码:

以下代码注释都很清楚了,如有不懂的地方可以留言,这里就不多做解释了。

[java] view plain copy print?

/**

* 注册

*

* @param account 注册帐号

* @param password 注册密码

* @return 1、注册成功 0、服务器没有返回结果2、这个账号已经存在3、注册失败

*/

public String regist(String account, String password) {

if (connection == null)

return "0";

Registration reg = new Registration();

reg.setType(IQ.Type.SET);

reg.setTo(ClientConServer.connection.getServiceName());

reg.setUsername(account);// 注意这里createAccount注册时,参数是username,不是jid,是“@”前面的部分。

reg.setPassword(password);

reg.addAttribute("android", "geolo_createUser_android");// 这边addAttribute不能为空,否则出错。所以做个标志是android手机创建的吧!!!!!

PacketFilter filter = new AndFilter(new PacketIDFilter(

reg.getPacketID()), new PacketTypeFilter(IQ.class));

PacketCollector collector = ClientConServer.connection

.createPacketCollector(filter);

ClientConServer.connection.sendPacket(reg);

IQ result = (IQ) collector.nextResult(SmackConfiguration

.getPacketReplyTimeout());

// Stop queuing results

collector.cancel();// 停止请求results(是否成功的结果)

if (result == null) {

Log.e("RegistActivity", "No response from server.");

return "0";

} else if (result.getType() == IQ.Type.RESULT) {

return "1";

} else { // if (result.getType() == IQ.Type.ERROR)

if (result.getError().toString().equalsIgnoreCase("conflict(409)")) {

Log.e("RegistActivity", "IQ.Type.ERROR: "

+ result.getError().toString());

return "2";

} else {

Log.e("RegistActivity", "IQ.Type.ERROR: "

+ result.getError().toString());

return "3";

}

}

}

第三、实现登录

关键代码: 代码很简单不做太多解释

[java] view plain copy print?

/**

* 登录

*

* @param a 登录帐号

* @param p 登录密码

* @return

*/

public boolean login(String a, String p) {

try {

if (connection == null)

return false;

/** 登录 */

connection.login(a, p);

return true;

} catch (Exception e) {

e.printStackTrace();

}

return false;

}

第四、修改密码

关键代码:同样很简单

[java] view plain copy print?

/**

* 修改密码

* @param connection

* @return

*/

public static boolean changePassword(XMPPConnection connection,String pwd)

{

try {

connection.getAccountManager().changePassword(pwd);

return true;

} catch (Exception e) {

return false;

}

}

android消息推送GCM、XMPP、MQTT三种方案的优劣,越仔细越好,有具体分析更好!

android消息推送GCM、XMPP、MQTT三种方案的优劣:

1、GCM服务(Google Cloud Messaging)优点:Google提供的服务、原生、简单,无需实现和部署服务端。缺点:Android版本限制,该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。

2、XMPP协议(Openfire + Spark + Smack)优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。

3、MQTT协议优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域,且已有C++版的服务端组件rsmb。缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。

d消息推送可以去了解一下极光,极光是个不错的平台。极光紧密围绕移动开发者需求,打造的开发者服务平台,可以提供一站式SaaS服务,通过全面覆盖PC、手机、传感器、无线路由器等多种设备数据,打造全域数据平台。当前,不断更新的SaaS产品及服务已深受国内百万开发者的认可和信赖。

android中 的xmpp连接服务器总是出非法状态异常异常是怎么回事

04-24 00:51:37.885: W/System.err(329): java.lang.IllegalStateException: Not connected to server.

04-24 00:51:37.885: W/System.err(329): at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:488)

04-24 00:51:37.885: W/System.err(329): at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:69)

04-24 00:51:37.895: W/System.err(329): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:353)

04-24 00:51:37.895: W/System.err(329): at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:230)

04-24 00:51:37.895: W/System.err(329): at org.jivesoftware.smack.Connection.login(Connection.java:353)

04-24 00:51:37.895: W/System.err(329): at com.wxs.model.User.login(User.java:200)

04-24 00:51:37.895: W/System.err(329): at com.wechat.project.activity.LoginAcitivity$4$1.run(LoginAcitivity.java:78)

04-24 00:51:37.905: W/System.err(329): at java.lang.Thread.run(Thread.java:1096)

Android消息推送:第三方消息推送平台详细解析

其他推送方式还有:C2DM、轮询、SMS、MQTT协议、XMPP协议等等,相对于这些推送方式,第三方推送方式的特点分别是:

请记住一个潜规则:操作系统是不会杀死属于自己品牌的推送服务。

当今市场上的Android手机系统份额最高是MIUI系统,即小米(具体排名请看 )

因为:免费、到达率高且在Android系统市场份额第一的MIUI系统上不被杀死。所以,如果要选择手机厂商的推送服务, 请选择小米推送作为第三方平台实现推送服务

下面一些应用可以从侧面来证明我的推断:

请记住一个规则:推送系统会共享一条推送渠道

所以说,关于如何选择第三方平台类的推送,推送平台的规模效应就很重要了。

那如何得知他们的规模和市场份额呢?按个人经验,主要看两点:

BAT大厂其实并没有什么优势, 同时谨记:

所以,大家可根据自己的使用场景来进行消息推送平台的选择。

通常第三方推送平台都支持两种推送消息类型:通知栏消息和透传消息。

不定期分享关于 安卓开发 的干货,追求 短、平、快 ,但 却不缺深度 。

新闻标题:androidxmpp的简单介绍
分享URL:https://www.cdcxhl.com/article26/dseppjg.html

成都网站建设公司_创新互联,为您提供网站排名关键词优化外贸建站域名注册微信公众号软件开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设