`
Jclick
  • 浏览: 190140 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于手机推送

阅读更多

我很纳闷。为什么都在要源码?没人去看主题帖?里边可以下的没人看?

 

    最近这段时间工作很忙,很少有时间整理这个,每当想要去整理的时候,总是觉得麻烦,就过去了。首先接着上一次谈谈吧。
     上次的主题帖:用androidpn来实现推送

 

     上次发表帖子后,很多朋友发信息提到了一些问题,就在这里进行解答一下吧。

 

 

问题:
1.asmack的包太大,3百多K。
2.只是完成Android的Push功能使用XMPP协议感觉很笨重。
3.androidpn服务器端的负载很难控制,除非自己改写。

 

 

1.经过一段时间的研究,我把smack的源码搞到之后,查看它的源代码,里边其实内容挺多的,包含了一些关于聊天的类,以及很多加密的、安全相关的,如果觉得这些不重要的话,大可以进行精简,删掉一半以上完全没问题。所以大小是问题。

2. 如果说只是用到android的push,XMPP协议确实笨重,但是正所谓一样东西肯定有两面性的,它只是一套标准,关键在于它的通用以及可扩展,如果 说笨重的话,很简单,它的发送消息你大可以精简,比如它的IQ表示消息,<iq id="144-39" to="121" type="set"><message xmlns="test:iq:message"><id>120</id></message><content><content> </iq>
content里边写入内容,如果这样,你还觉得笨重的,完全可以自定义一套协议。实际上,在推送方面,这点文本信息所耗费的流量完全可以忽略不计,而带来好处,却是一套成熟的消息推送标准。

3.androidpn的服务器端是用的MINA来控制socket连接的,这个框架也算成熟,在这里就不提了。

 

 

      这段时间,针对BUG做了一些修改,对XMPP协议也有了进一步的了解。androidpn其实并不成熟,说实话,成熟的是asmack和MINA。而它 只是把这两个进行了集成。androidpn存在BUG,比如上次提到的服务器重启不能自动重连,这次也解决了。顺便发出来跟大家分享以下,如果有什么问 题大可以回帖,定会一一解答。

 


下载地址

分享到:
评论
24 楼 j夫子 2012-08-01  
楼主啊 115网盘不能用了啊。。。 我的邮箱85377579@qq.com 传我一份吧 急用。。
23 楼 tvrrdfn 2012-07-20  
请问楼主,,我下载你的文件包,用eclipse导入工程androidpn-client会报错,运行不了!!!

错误:
1. K 无法解析为类型 EmptyMapIterator.java
2. MapIterator<K,V> 无法解析为类型 AbstractHashedMap.java
3. V 无法解析为类型 EmptyMapIterator.java
4. 类型不匹配:不能从 Iterator<Generator> 转换为 Iterator<Object> Master.java
5. 类型不匹配:不能从 List<OPTRecord.Option> 转换为 List<Object> OPTRecord.java

还有很多个警告.... 请问大神,这些是什么导致的错误?? 请您指点,谢谢!
22 楼 haifengbin 2012-07-19  
这位大神,能不能把你自己修改的代码,附一份说明文档啊!谢谢了!
21 楼 zsxsilence 2012-06-20  
万分感谢牛人的分享,帮了很大的忙。然后再劳烦牛人帮忙解答一下 openfire和androidpn有啥关系?他们之间的主要区别是啥?还有androidpn能够支持多大的用户量并发?有没有参考性的数据?再次感谢
20 楼 chinamima 2012-04-17  
楼主,我想问问,服务端在哪里处理客户端的心跳呢?客户端第一次连接时,服务端是在哪里处理"客户端第一次连接"的呢?
另外,有没非spring,hbnet版的?我没找到
19 楼 lcqlcq5 2012-04-16  
想问一个问题,就是通过之前建立的链接,客户端如何返回一个回执告诉服务端已经收到消息。
18 楼 tengyun_20 2012-03-28  
不好意思,请问一下,在apn的服务器端里,是怎样让tomcat启动的时候自动启动服务连接客户端的?有什么配置么?在源码的大概什么位置,一直找不到是怎样实现的……
如果是有spring控制的,那么如果不使用spring,那应该如何配置?

真心感谢
17 楼 wyzxk888 2012-03-28  
Jclick 写道
wlyjj412 写道
朋友,你好,我现在的一个项目也在用到androidpn这个框架,并且也发现了一个问题,就是如果服务器端重启的话,客户端监听不到断开的事件,请问你在这个源码里面是修改的哪个地方让它可以重连呢,是在客户端修改还是服务器端修改的,或者是在哪个类里面进行修改,期待你的回复,谢谢

客户端修改,本来客户端有一个发送心跳包的,主要在XMPPWriter

我也需要修复这个bug,但是没有你说的这个XMPPWriter类呀?修复这个问题不用修改asmack.jar的吧?具体需要如何修改,如何监听到服务器已断开连接?
16 楼 Jclick 2012-02-16  
yongze103 写道
大牛,请问一下那个userName是怎么产生的,由客户端还是服务端产生的?

在XMPPManager里边~~可以自由配置
15 楼 mazhi4562qq 2012-02-16  
偶像,方便交流一下吗,小弟刚学。278205092
14 楼 yongze103 2012-02-15  
大牛,请问一下那个userName是怎么产生的,由客户端还是服务端产生的?
13 楼 xytdman 2012-01-10  
请问您的博文里提到AndroidPN服务器重启不能自动重连的问题已经解决了,是修改客户端还是服务器端解决的?能简单说下怎么改的吗?
12 楼 xytdman 2011-12-26  
我想改造androidPN,想服务端除了支持jabber:iq:register、jabber:iq:auth还能支持其他服务,如jabber:iq:binding,我看了一下服务器端源码,每种服务都有对应handle,比如过binding,也可以对应BindingHandle,但是我没有找到解析XMPP服务的那个类,这个类解析query类型,如果是regiter就调用注册的handle,如果是auth,就调用认证handle,我想增加新的服务,应该修改哪个类啊?
如果上面你都没听明白也没关系,我最核心想问,我想让客户端发送一些信息给服务器端,并且服务器端能够对我发送的信息进行处理,我该怎么修改服务器端与客户端呢?
11 楼 谁在哀伤望月 2011-12-23  
楼主能不能在Androidpn项目中加上解决flex的安全沙箱解决方法啊,Openfire好像是有处理的
10 楼 Jclick 2011-12-10  
swadair 写道
Jclick 写道
swadair 写道
您整理的androidpn-server项目导入后,要求连数据库,感到很不解啊。报了一大堆的错误。只能访问index.jsp. user.do等访问异常。需要您的帮助
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
.......

因为注册的用户要存储到数据库,所以确保电脑上装的有MYSQL

除了装有mysql外,需要建一个库和表来满足注册的用户存储吗? 要的话怎么建?项目里面在哪里改数据库连接?还有androidpn jetty版本可以直接启动,不需要mysql,是为什么呢?


很简单,因为JETTY的备有两个存储数据的方式。一种是MYSQL。另一种是什么我也忘记
9 楼 swadair 2011-12-09  
Jclick 写道
swadair 写道
您整理的androidpn-server项目导入后,要求连数据库,感到很不解啊。报了一大堆的错误。只能访问index.jsp. user.do等访问异常。需要您的帮助
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
.......

因为注册的用户要存储到数据库,所以确保电脑上装的有MYSQL

除了装有mysql外,需要建一个库和表来满足注册的用户存储吗? 要的话怎么建?项目里面在哪里改数据库连接?还有androidpn jetty版本可以直接启动,不需要mysql,是为什么呢?
8 楼 Jclick 2011-12-08  
swadair 写道
您整理的androidpn-server项目导入后,要求连数据库,感到很不解啊。报了一大堆的错误。只能访问index.jsp. user.do等访问异常。需要您的帮助
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
.......

因为注册的用户要存储到数据库,所以确保电脑上装的有MYSQL
7 楼 swadair 2011-12-08  
您整理的androidpn-server项目导入后,要求连数据库,感到很不解啊。报了一大堆的错误。只能访问index.jsp. user.do等访问异常。需要您的帮助
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
.......
6 楼 Jclick 2011-12-06  
wlyjj412 写道
朋友,你好,我现在的一个项目也在用到androidpn这个框架,并且也发现了一个问题,就是如果服务器端重启的话,客户端监听不到断开的事件,请问你在这个源码里面是修改的哪个地方让它可以重连呢,是在客户端修改还是服务器端修改的,或者是在哪个类里面进行修改,期待你的回复,谢谢

客户端修改,本来客户端有一个发送心跳包的,主要在XMPPWriter
5 楼 wlyjj412 2011-12-06  
朋友,你好,我现在的一个项目也在用到androidpn这个框架,并且也发现了一个问题,就是如果服务器端重启的话,客户端监听不到断开的事件,请问你在这个源码里面是修改的哪个地方让它可以重连呢,是在客户端修改还是服务器端修改的,或者是在哪个类里面进行修改,期待你的回复,谢谢

相关推荐

    手机推送方案分析

    在移动互联网领域,手机推送已经成为应用与用户保持实时互动的关键技术。本文主要分析了手机推送方案,探讨了其工作原理、常见实现方式及其优缺点,并提出了一些解决方案。 首先,推送功能最初源于电子邮件通知,但...

    C#后台推送苹果手机消息

    通过以上步骤,我们就可以使用C#在后台成功向苹果手机推送消息。这不仅可以提高用户体验,也能及时传达重要信息,是移动应用开发中的重要一环。然而,要注意遵循Apple的推送通知政策,尊重用户的隐私,避免滥用推送...

    小米推送之消息推送的Demo

    小米推送是一种针对Android应用开发者的消息推送服务,它可以帮助开发者实现向用户设备实时发送消息的功能,提高用户活跃度和应用粘性。小米推送提供了一系列API和SDK,方便开发者集成到自己的应用中。在这个"小米推...

    C#+java手机消息推送源码

    标题中的"C#+Java手机消息推送源码"表明这是一个关于使用C#和Java编程语言实现手机消息推送功能的项目。在移动应用开发中,消息推送是关键特性之一,它允许应用程序在用户不直接与应用交互时向他们发送通知。这两种...

    手机推送(百度,华为,魅族,小米,腾讯)

    总之,理解并实现手机推送服务对于提升用户体验至关重要。通过Java服务端集成百度、华为、魅族和小米的推送API,开发者可以有效地触达用户,提高应用的活跃度和用户满意度。在实际开发中,还需关注用户隐私保护、推...

    手机端的app推送消息(个推)

    在本文中,我们将深入探讨个推在手机端App推送消息的应用及其相关技术。 首先,个推推送服务的核心功能是实现应用程序在后台运行时向用户的设备发送消息,即使用户并未打开应用。这种服务基于云服务,能够跨越不同...

    极光推送+讯飞语音播报

    【极光推送与讯飞语音播报整合应用】 在移动应用开发中,为了提供更好的用户体验,开发者经常需要实现实时的消息推送功能。极光推送(JPush)和讯飞语音播报是两个在中国市场上广泛使用的工具,它们分别专注于消息...

    push(实现消息推送)

    在IT行业中,消息推送是一项关键的技术,特别是在移动应用开发中,如Android平台。"push(实现消息推送)"这个主题涉及到服务器如何实时地将新消息或通知推送给客户端应用程序,而无需客户端持续轮询服务器。这提高...

    Android手机端小米推送Demo解析和实现方法

    《Android手机端小米推送Demo解析与实现详解》 在Android应用开发中,消息推送是一项重要的功能,它能够实现实时地将服务器端的信息传递给用户,提升用户体验。小米推送作为第三方推送平台,以其稳定性和高效性受到...

    织梦自动推送百度、熊掌号、MIP、神马插件

    本织梦插件支持在发布... 本织梦插件支持PC端、手机端或MIP端三端各自独立域名,且文章链接部分相同的站点发布文章自动推送;也可以支持自适应织梦站点的发布文章自动推送,推送后返回推送的结果以及推送的相应网址。

    c# 手机推送案例(ios和android)

    在C#中实现手机推送功能,通常涉及到与iOS和Android平台的交互,因为这两个系统有着不同的推送服务。本文将深入探讨如何使用C#进行iOS(通过Apple Push Notification Service,APNS)和Android(通过Google Firebase...

    Java 集成华为推送服务 服务端(发送消息)

    在Java开发中,集成华为推送服务是为应用提供消息推送功能的重要步骤,这可以提高用户互动性和应用的活跃度。本篇文章将详细讲解如何在服务端实现华为推送服务的集成,以及如何发送推送消息,同时关注数字角标的自动...

    极光推送功能实现

    在实现极光推送时,我们不建议手机端直接去调用极光推送的服务器端,而是让与手机对接的服务器端,集成极光推送,手机端直接与自己的服务器端对接实现推送的功能,这样,也可以将推送至手机的信息保存至服务器端,也...

    手机接受openfire推送的消息

    在这个“手机接受openfire推送的消息”的主题中,我们将深入探讨如何配置Openfire服务器,创建用户,并确保手机能够接收到来自Openfire的消息推送。 首先,我们需要了解XMPP协议。XMPP是一种基于XML的开放标准,...

    安卓手机消息推送技术介绍

    移动互联网消息推送服务的技术实现介绍 轮询还是长连接?Apns还是Gsm?

    极光推送C#实例(含android例子)

    极光推送是一款在中国广泛应用的第三方推送服务,它为开发者提供了高效、稳定、便捷的消息推送解决方案。本实例将探讨如何在C#和Android平台上使用极光推送服务,帮助开发者实现跨平台的消息推送功能。 首先,我们...

    让win10支持苹果手机屏幕推送

    标题中的“让win10支持苹果手机屏幕推送”是指在Windows 10操作系统上实现与Apple设备(如iPhone或iPad)的屏幕镜像功能,即让Windows 10电脑能够显示苹果设备的屏幕内容。这一功能通常被称为AirPlay,但Windows 10...

    OPPO推送开发接口

    OPPO推送开发接口是OPPO公司为其智能手机和平板电脑设备提供的一种推送通知服务。开发者可以利用OPPO推送服务来向用户的应用程序发送各种消息,比如天气更新、新闻摘要、新功能通知以及应用内事件等。根据给定文件...

    手机消息推送协议

    总的来说,MQTT协议作为手机消息推送的一个标准,为开发者提供了一种有效、可靠的消息传递方式。它特别适用于移动应用、物联网设备以及需要高效率、低资源消耗的消息传输环境。通过掌握MQTT协议的使用,开发者能够为...

    android手机摄像头推送至RTMP服务器

    -将android手机模拟为监控摄像头,推送视频流至RTMP服务器。 -不使用flash,APP工作时,本机也无需安装flash。 -兼容大部分手机,一般2.3.3以上,ARM V7架构即可。 -默认分辨率352x288,特定场合下,640x480也能...

Global site tag (gtag.js) - Google Analytics