随笔分类 -  移动互联网相关

移动互联网SP计费
摘要:目前android应用不如人意的一点就是收费,大批开发者靠着内置广告点击、应用推广下载收入微薄。苹果开发者由于有苹果这么个平台,收入颇丰。这里介绍下android中的SP计费方式,为各位androider多一种赚钱的选择。 SP计费就是通过在手机应用中内置发送短信到SP提供商,直接从用户手机话费中扣费的计费方式。基本的流程如下:基本流程的说明: 0.首先开发者要拿到一个或多个可用的SP通道(方式方法不一而足,后面再讲,这里先关注技术)。这里的SP通道是SP提供商分配给你的一种计费途径,包括但不限于:点播短彩信、包月短彩信、WAP、IVR。点播是按条计费,包月则是按月计费。每个通道都会有... 阅读全文

posted @ 2012-07-30 19:07 心笑峰 阅读(9688) 评论(3) 推荐(1) 编辑

HTTP文件断点上传
摘要:由于业务需要,手机需要采用http方式传输文件到后台WEB服务器,1、2百K的小文件不会有太大问题,几M甚至几百M的文件就很容易传输失败。所以考虑实现HTTP文件断点续传功能,基本流程如下:1.客户端计算本地要上传的文件的hashcode2.根据指定的块大小和文件大小计算最终的块数3.发送文件信息到服务器包括要上传的文件名、大小、类型、块数、Hashcode4.服务器根据hashcode查询服务器上是否已经存在对应的文件,以及文件的上传状态(上传是否完成、是否组装完成、已经上传了哪些块)5.6.已经上传完成的读取文件URL地址返回给客户端7.8.未上传完成的返回已经上传的块编号 9.客户端根. 阅读全文

posted @ 2012-07-25 15:25 心笑峰 阅读(18794) 评论(2) 推荐(2) 编辑

移动互联网中一种终端标识法
摘要:移动应用软件开发中比较重要的一点就是客户端的标识。所谓的“标识”就是指给每个发布出去的客户端一定的预置属性,方便我们在软件更新、数据统计、商业合作、版本控制等等场合对这些客户端进行区别分类。天然的属性中比较重要的包括“平台类型”、“软件类型”、“版本号”,一般的应用通过这几个属性即可对客户端达到一定程度的控制。但是要达到更精细更准确的控制就需要开发者预置属性进去。 这里介绍一种之前山寨机时代SP公司对终端的标识法: 在客户端中预置以下属性: ChannelType 渠道类型 Channel 渠道 Custer 厂商 一个完整的客户端标识可能是这样:01#490#113 具体的应... 阅读全文

posted @ 2012-07-17 10:22 心笑峰 阅读(941) 评论(0) 推荐(0) 编辑

手机上的消息推送
摘要:最近在找android手机上的消息推送的解决方案。目前看来有以下几种常用的方式: 1.定期查询:按照指定的时间间隔连接服务器查询获取最新的消息。实现起来简单,非实时,查询时间过短则流量耗费多,耗电量大。下面是一个爱立信的测试结果:2.短信方式:需要及时发送消息给客户端时也可以通过这种方式,但大家都懂的,这个很花钱。 3.长轮询:基本上与目前很多网站使用的方式一样(WEB阿里旺旺、微博、人人等等)。客户端发起一个很长超时时间的请求,然后服务器端在没有消息的时候阻塞这个请求(一直不给返回值)直到快要超时为止,有消息到来再返回响应。客户端收到响应或超时后立即再发起请求。 这种算是比较好的方式了,消. 阅读全文

posted @ 2012-05-17 21:02 心笑峰 阅读(15560) 评论(7) 推荐(2) 编辑

Openfire 用户离线、断线 及心跳检测
摘要:客户端登出分为正常离线和断线,正常离线会发送presence 消息通知服务器,断线则无通知发送。1. 正常离线:客户端在离线之前发送<presence id='***' type ="unavailable"></presence>由PresenceRouter 路由到PresenceUpdateHandler 中处理。判断Type为unavailable 之后先进行广播,再设置session的状态,再更新presenceManager中用户最后一次的状态。presenceManager中会更新lastActivityCache 中的 阅读全文

posted @ 2011-09-29 18:24 心笑峰 阅读(12595) 评论(1) 推荐(1) 编辑

openfire servlet插件
摘要:项目中需要 openfire 对外提供一个web接口,接受客户端发送过来的http 请求,按照参数处理后返回相应的response。于是考虑使用servlet插件。 实现方法:1.在src/plugins目录下建立如下结构的目录。 2.在java build path 中source 页添加 myservlet/src/java 目录。 3.在org.jivesoftware.openfire.plugin 包下新建class MyservletPlugin 实现Plugin接口;新建org.jivesoftware.openfire.plugin.myservlet包,在包下新建Myse.. 阅读全文

posted @ 2011-09-09 21:56 心笑峰 阅读(1288) 评论(2) 推荐(0) 编辑

Openfire Cache 大小设置
摘要:Openfire中有一个CacheFactory 工厂类,负责创建各种类型的Cache。从控制台的Server -> System Propertys 里面可以设置各个Cache的大小,格式为 cache.XXXX.size 1024byte具体对应的XXXX 为CacheFactory 下 cacheNames.put(Type,Name) 中Name对应的值。 阅读全文

posted @ 2011-08-27 14:52 心笑峰 阅读(296) 评论(0) 推荐(0) 编辑

Openfire + ConnectionManager 连接正常但客户端操作失败
摘要:Connection 对于openfire的消息是透传的,只是在原有的消息外面包上一层<route/> 假如openfire 所在ip 为192.168.1.11 服务器上设置的域为 myserver ConnectionManager 所在ip为192.168.1.12 则ConnectionManager 的配置中 <jive> <xmpp> <domain> </domain> 里面填写IP地址会出现问题 填写IP则最终发送到openfire的消息里的to的值为ip,而不是域。所以出现server.name!=packet.to 阅读全文

posted @ 2011-08-25 20:52 心笑峰 阅读(877) 评论(0) 推荐(0) 编辑

Openfire 调试信息
摘要:如图Openfire一般启动之后如果有收到客户端发送的数据则会在控制台打印出来。根据这些信息我们可以很清晰地了解到服务器的数据交互情况,再结合内部的代码和注释,整个Openfire就比较容易搞懂了。这些信息是由一个叫xmldebugger的插件提供的。RawPrintFilter这个类负责处理指定内容的信息,可通过在数据库表ofproperty中添加plugin.xmldebugger.c2s 的属性设置,来控制打印信息的开关。默认情况下为开启。第二种方法就是直接通过管理控制台来操作:服务器-->服务器设置-->Debugger Properties 将Client(default 阅读全文

posted @ 2011-08-09 11:01 心笑峰 阅读(365) 评论(0) 推荐(0) 编辑

XMPP文件传输过程
摘要:客户端A向B 发送文件的过程:两个XMPP节点之间传输文件一般有三种方式:Out-of-Band Data 具体见XEP-0066:点击打开链接in-band bytestream 适合传输较小的数据,通过直接携带在XML中进行传输 具体见:XEP-0047:点击打开链接socks5 通过服务器代理的方式,实现两个节点之间的直接传输以下为通过socks5 方式传输文件的过程:1.A向B发送请求查询B是否支持字节流。2.B返回应答3.A向服务器发送请求,查询可用的代理4.服务器应答,返回目前disco列表中所有可用的服务项5.A验证服务器中每一项是否是字节流代理6.服务... 阅读全文

posted @ 2011-08-05 11:21 心笑峰 阅读(1057) 评论(0) 推荐(0) 编辑

Openfire 离线消息的处理机制
摘要:OfflineMessagetrategy:离线消息的处理策略类。1.静态成员变量type 用来设置消息的处理类型,主要包括: 打回 丢弃 存储,在超限情况下打回 存储,在超限情况下丢弃2.静态成员变量quota 标识最大所能存储的message总和大小默认为100k。3.支持OfflineMessageListener事件监听器,只要实现此接口并加入到监听器列表,则在消息被打回或存储时可扑捉到相应消息。 4.所有离线消息都存储在表ofoffline中。OfflineMessageStore:用来具体处理离线消息的类。1.用addMessage(Message message)来存储一条消.. 阅读全文

posted @ 2011-07-22 19:16 心笑峰 阅读(6119) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示