服务器主动向android客户端发送消息用什么机制比较好

如题所述

一、消息推送基础
消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息
当我们开发需要和服务器交互的移动应用时,基本上都需要和服务器进行交互,包括上传数据到服务器,同时从服务器上获取数据。
一般情况下,客户端与服务器之间通讯客户端是主动的,但这就存在一个问题就是一旦服务器数据有更新或者服务器要下发通知给客户端只能等客户端连接的时候才能实现。这种方式使消息失去了实时性。
如何使客户端能够实时的收到服务器的消息和通知,总体来说有两种方式,第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。 
虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push方式比Pull方式更优越。因为Pull方式更费客户端的网络流量,更主要的是费电量,还需要我们的程序不停地去监测服务端的变化。  
二、几种常见的解决方案实现原理
1)轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。
2)SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。
3)持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。
三、消息推送解决方案概述
A、C2DM云端推送方案
在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务。Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。
该方案存在的主要问题是C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-01
各种第三方推送SDK都能用。。

怎么实现服务器给android客户端主动推送消息
1、轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。2、SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。3、持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。

服务器主动向android客户端发送消息用什么机制比较好
1)轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。2)SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。3)持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。三、...

android 消息推送是什么,消息推送一般是怎么做的
Android消息推送,基本上都是以长链接的方式实现的,其原理是客户端主动和服务器建立TCP长链接,长链接建立之后,客户端定期向服务器发送心跳包用于保持链接,当有消息要发送的时候,服务器可以直接通过这个已经建立好的长链接,将消息发送到客户端。Android端可以通过两种方式实现消息推送,一种是自建推送平台...

怎么实现服务器给android客户端主动推送消息
1、打开应用时向服务器发申请 2、如果应用一直打开,或者有后台服务,可以定时向服务器发申请 Google本身就有一个推送demo可以用,Google Cloud Message,你可以参考一下,不过国内用Google推送不太稳定,但是我测试的时候基本上都能推送成功。详细的搭建你可以参考我的微博,有什么问题你再问吧 ...

服务器端如何主动将消息推送到Android手机
...应该是客户端主动定时去连服务器端,这种操作最好要让用户知道第二个问题应该是不是在用户连接到手机时,存到一个地方,或者内存中,或者数据库中但是现在的需求是当数据库有更新时就要主动发送一个更新通知给所有的客户端,然后客户端接到这个通知后才到服务器端取数据。你说的那是轮询,暂时还不...

如何实现服务器后台数据有更新的时候自动推送到android客户端?
您可以使用服务器推送(Push)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。目前常见的解决方案有轮询(Pull)和推送(Push)两种方式。轮询(Pull)方式是客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。这种方式更费客户端的网络...

如何实现消息推送功能
现在流行的消息推送实现方式,主要为长链接方式实现。其原理是客户端主动和服务器建立TCP长链接,长链接建立之后,客户端定期向服务器发送心跳包用于保持链接,当有消息要发送的时候,服务器可以直接通过这个已经建立好的长链接,将消息发送到客户端。个推作为国内移动推送领域的早期进入者,于2010年推出个推...

如何向android手机推送消息
所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。推送方法如下:1)通过SMS进行服务器端和客户端的交流通信。在Android平台上,...

android消息推送一般有哪里平台
android消息推送有很多第三方的平台。 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息。推送方法如下:1、通过SMS进行服务器端和客户端的交流通信。2、循环主动定时获取3、持久连接:需要开一...

springboot集成websocket(springboot集成websocket原理)
使用WebSocket协议可以实现由服务器端主动向客户端推送消息,当然客户端也可以向服务器端发送消息。 这里仅介绍利用Spring框架使用WebSocket的方式,原因:Spring使用WebSocket简便且易于扩展。 SpringBoot使用WebSocket非常方便,依赖上仅需要添加相应的Starter即可。 先给出概要的开发步骤: 其实到这里,基础的websocket服务已经搭建...

相似回答