`

搜寻了关于android推送资料后的一些思考

阅读更多

其实我们要用推送服务的情况还挺多:

1,站内性 其实是可以用推送实现的,互相点对点的推送 当然这是在web上的,名字有点老土

2,私信 这个微博的私信就是一种,值在页面右下角出来对话框形式的

3,优惠发送到手机app上 很多app都来这个,推送些软件或者文章

4,app和app之间的通信 聊天软件 微信 gtalk等

 

以上几种服务的形式可分类成:

1,server对server 站内信

2,server对client  私信 优惠推送

3,client对client  聊天工具 微信 gtalk

其本质的原型是 N个client《------》server《-------》N个client client在登录后都会有一个id被记录在server,server就通过这个id来点对点的发送信息返回信息。这里只是说了点对点就是私聊,群聊还没说,我猜想只是多了一个群聊标记判断。

其原理实现是基于xmpp协议的 http://blog.csdn.net/xyz_lmn/article/details/6947130 谢谢这个作者

 

可能的技术选型和架构:

1,

服务端server:openfire+smack+mysql+tomcat

openfire是实现了xmpp的一个服务器也是一个开源项目,用来管理连入的client信息的。也是有openfire负责消息发送和接受的。

smack是一个xmpp协议的api库,openfire是使用了这个库的

mysql是openfire的数据库,也可以支持mssql的

tomcat是web服务器,openfire还是要跑在这个上面的

 

客户端client:使用smack api的任何客户端都可以,只要信息以xmpp协议发送就可以了,至于发送到哪里肯定是openfire在的服务器咯 

上面这个选型呢,开源的,可以自己修改,如果要和自己的程序在进行整合需要花点时间

 

2,

服务端server:openfire+smack+mysql+tomcat

客户端client:smackweb  html5或者用浏览器控件直接访问用web技术做的网站也行。只要让client链接到server就可以了

还有使用asmack api 的client asmack是smack的android优化版

 

3,

服务端server:你自己随便用什么写都行

客户端client:随便什么客户端+现有的第三方推送服务,极光推送,还有一个收费的我就不举例了。

 

顺便说一句:如果你的应用的流程是可以在client执行一个动作后获取服务端信息的,就还是用http吧。也就是推送的业务和其他业务是相邻的2个业务动作就行。

分享到:
评论
2 楼 Think_Java_1993 2013-05-09  
问一下你的jshop的设计文档可以给我一份么 我在看你的这个开源项目 正好这些技术我都有涉及 除了freemarker  我想看看你的设计文档 数据库文档我这里下载了
我的邮箱:yjc199308@gmail.com
1 楼 曹佳伟 2013-04-11  
老大,我现在的想法是做一个长连接推送,原理和comet一样,因为我的app使用人群不会很多,应该说是企业app应用,而且应该只有企业高层使用,服务器方面都是用企业自己的服务器

相关推荐

Global site tag (gtag.js) - Google Analytics