• 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基础练习题(题目 学习使用auto定义变量的用法)
    python基础练习题(题目 模仿静态变量的用法)
    roaring bitmap 与 bitmap 比较. 编译运行
    Linux 实现开关机测试,记录开机次数
    Linux 显示开机欢迎信息(/etc/issue 与 /etc/motd)
    Linux 修改文件权限概述
    把编译好的程序放在Linux系统里,实现不需要配置程序和动态库的环境变量,直接执行
    Linux 提示 is not a symbolic link 错误解决方法
    Ubuntu 自动更新详解【转】
    C#线程入门
  • 原文地址:https://www.cnblogs.com/kingshow123/p/push.html
Copyright © 2020-2023  润新知