zoukankan      html  css  js  c++  java
  • 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个业务动作就行。

     

     
  • 相关阅读:
    装饰器详解
    面试题求 平衡点
    Python面试题
    With语句上下文管理
    多个装饰器修饰一个函数
    NGINX部署配置参考.
    Django ORM操作
    MYsql 之多表查询.
    [数据结构与算法] : 二叉查找树
    [数据结构与算法] : 队列
  • 原文地址:https://www.cnblogs.com/renkangke/p/3018483.html
Copyright © 2011-2022 走看看