Andorid手机应用程序去请求一个服务器有很多种方法,HTTP,Socket,WebService等,每次请求都能返回数据,程序可以根据返回的值进行保存或者再次发起请求,想得到什么就请求什么,非常精准,也非常迅速。

可是像QQ,飞信,米聊,微信这些软件是怎么实现IM通信的呢?从网上找了一堆,大多数都不大明白怎么回事,现在我终于明白为什么招聘Android开发工程师的时候,要求有网络开发(TCP/IP、HTTP)了。

先列一下我查到的方法或者我知道的方法,也可能有重复的,求高手指正:

1、SMS短信PUSH

依靠运营商的短信接口,push命令短信到手机端。接收到短信后拦截,然后解析短信内容,根据解析到的指令,产生相应的动作,比如再去主动请求服务器,拉取数据。

优点:实时性强,不会耗电,不会耗费网络流量,只要有信号,就能用。可以说是几乎万能的了。

缺点:必须依靠比较大的运营商,而且如果很多人同时在线交流,SMS数量会非常之大。免费的短信接口不容易寻找到,支持性,兼容性较差。

2、简单轮询的方式

我的猜测:每隔一段时间主动向服务器发起请求,可以是HTTP请求。通信过程需要自己去写,最需要考虑的就是请求的频率,太慢了达不到即时的效果,太快了电池,流量和带宽都有限制。

优点:不需要依靠第三方,轻量级实现,灵活性好

缺点:频率需要权衡,功能需要自己封装。

3、Socket连接

优点:可以保持长连接,快速响应

缺点:手机端电力和流量消耗较大,服务器端连接数过多,负载过重

4、MQTT协议

这个没研究过,不过据说这个也能很好实现,服务器端如果是用PHP写的话,看起来就比较吃力了。

5、 C2DM方式

谷歌官方提供的服务

优点:官方式的服务,全面,有效

缺点:不支持2.2以下版本,不能自己建立服务器,服务器在国外,你懂得

6、XMPP协议

6.1 Openfire + asmack

6.2 androidPN Server + androidPN Client

第二个其实是第一个的第三方实现,但是如果自己做,还是推荐用第一种方式

未完待续。。。

服务器直接推送android,服务器推送消息到Android终端方法相关推荐

  1. android 按键消息,在android中模拟键盘消息(shell命令的方法)

    已找到解决方案[code] use: sendevent command format: sendevent device type code value [command] [device] [ty ...

  2. Android 服务器推送技术

    在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相 ...

  3. php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解

    微信小程序 消息推送php服务器验证实例详解 设置页面("设置">>"开发设置"): 1.设置服务器域名 注意http和https协议的不同. 2. ...

  4. 微信小程序消息推送自有服务器无法接收到信息,消息推送服务器配置次数用完的解决方式。

    问题描述:消息推送自有服务器无法接收到信息,消息推送服务器配置次数用完! 解决方向:自有服务器无法接收信息的排错,消息推送配置的次数用完的解决方式. 适合版本:微信所有版本(2020.4.16) 关于 ...

  5. 怎么用git将本地代码上传到远程服务器_git在远程服务器创建项目并将本地代码推送到服务器上...

    1.进入到远程服务器 ssh name (name:远程服务器地址) 2.进入以后新建一个空的仓库 git init --bare name (name:仓库的名称) 3.退出远程服务器 exit 4 ...

  6. 打包docker镜像,推送远程服务器,部署到k8s步骤

    打包docker镜像 前提条件 1.docker服务器已开启远程访问,参考<远程docker服务器携带证书连接>. 2.服务器上已经搭建好k8s集群,本文是k8s单点集群用于测试. 在之前 ...

  7. C#FFmpeg视频采集与推送RTMP服务器代码思路整理

    C#视频采集与推送RTMP服务器代码思路整理:在看过FFmpeg后是否认为写C#的视频流采集和推送还是一头雾水啊?深有此感.领导是C#的高手,说可以通过C或C++的代码直接复制粘贴到C#工程然后进行适 ...

  8. win10消息推送服务器,win10怎么对更新的推送消息进行设定

    正常来说,我们在给电脑下载安装完新的win 10系统之后,一般是没有问题的,通常是在收到系统更新的推送之后再进行更新就行,但是好多小伙伴说自己从来没有收到过win 10的更新推送通知,下面白豆芽就和大 ...

  9. 信息推荐服务 信息推送服务器,根据用户喜好进行信息推送的方法及服务器技术...

    [技术实现步骤摘要] [专利摘要]本专利技术公开了一种根据用户喜好进行信息推送的方法及服务器,包括:获取预设范围内的用户的喜好标签:接收到目标用户发出的喜好信息推送请求:将所述目标用户的喜好标签与所述 ...

  10. 信息推送分发服务器系统,消息事件的分发方法、分发平台、系统及服务器专利_专利查询 - 天眼查...

    1.一种消息事件的分发方法,其特征在于,包括:如果监测到消息发布服务发布的消息事件,获取预先存储的配置信息:其中,所述配置信息包括所述消息发布服务,以及所述消息发布服务对应的至少一个消息订阅服务:根据 ...

最新文章

  1. java 内存_java节省内存的几条建议
  2. 程序员求职之道(《程序员面试笔试宝典》)之学业与求职,孰轻孰重?
  3. WinAPI: waveOutPause - 暂停播放
  4. Maven搭建SpringMVC+Mybatis项目详解
  5. hermite插值c语言程序,张艳-埃尔米特Hermite 插值逼近的C语言程序.doc
  6. 计算机物联网工程学什么,物联网工程主要学什么 物联网工程专业课程有哪些...
  7. 测试开发面试题汇总(自用)
  8. 面试题目之:为什么选择veu?与其他框架对比的优势和劣势?
  9. java程序throw异常,Java中处理异常throw和throws
  10. iOS上传IPA时提示导入此构建版本时出错-errors occurred in the app thinning process
  11. 【5月比赛合集】80场可报名的数据挖掘大奖赛,任君挑选!
  12. 区块链技术具体要用到什么开发语言?
  13. hive-创建数据库-创建表--hive版本3.1.2
  14. Linux常用命令和shell命令
  15. 快速接入高德地图SDK(地图+定位+标记+路线规划+搜索)
  16. exit和return的区别
  17. cf1149E. Election Promises
  18. windows硬盘linux无法挂载,关于linux:Ubuntu无法挂载Windows硬盘甚至Windows在双启动时正常关闭...
  19. 怀旧服小号最多的服务器,怀旧服入坑攻略:10个快速练级技巧要领
  20. shadow机械手臂系统

热门文章

  1. 熟练使用计算机word,如何熟练使用办公软件 轻松熟练操作Word办公软件宝典
  2. 金融任务实例实时、离线跑批,Apache DolphinScheduler 在新网银行的三大应用场景与五大优化...
  3. Date类型转int类型
  4. PC微信逆向分析之《刷新登录二维码》
  5. Python中用print函数输出
  6. lstm训练情感分析的优点_使用LSTM进行文本情感分析
  7. Mac安装lrzsz
  8. win8解除网速限制的操作方法【系统天地】
  9. SQL注入原理-字符型注入
  10. 手把手教你学Python之常见运算符