成都网站建设设计

将想法与焦点和您一起共享

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的简单介绍
浏览地址:http://chengdu.cdxwcx.cn/article/dseppjg.html