服务器端如何nodejs 主动推送消息将消息推送到Android手机

09:50 提问
如何实现服务器后台数据有更新的时候 自动推送到android客户端?
如何实现服务器后台数据有更新的时候 自动推送到android客户端?
按时间排序
利用云端推送服务
服务器 & 云端 & 手机 & 服务器IO/API
数据库变动可以用触发器,也可以服务器轮询
推动可以用极光推送
其实这个很简单,你就一直监听你要获得的数据就可以了嘛,用一个服务或者闹钟(AlarmManager)实时请求就可以了
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐  本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息。这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告。本文就是来探讨下Android中实现推送功能的一些解决方案,也希望能够起到抛砖引玉的作用。^_^
  1.推送方式基础知识:&
  在移动互联网时代以前的手机,如果有事情发生需要通知用户,则会有一个窗口弹出,将告诉用户正在发生什么事情。可能是未接电话的提示,日历的提醒,或是一封新的彩信。推送功能最早是被用于Email中,用来提示我们新的信息。由于时代的发展和移动互联网的热潮,推送功能更加地普及,已经不再仅仅用在推送邮件了,更多地用在我们的APP中了。
  当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如《地震应急通》就需要及时获取服务器上最新的地震信息。要获取服务器上不定时更新的信息,一般来说有两种方法:第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。&
  虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push方式比Pull方式更优越。因为Pull方式更费客户端的网络流量,更主要的是费电量,还需要我们的程序不停地去监测服务端的变化。&&
  在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息。我们只需要在Android或IPhone的通知栏处向下一拉,就展开了Notification Panel,可以集中一览各种各样通知消息。目前IOS平台上已经有了比较简单的和完美的推送通知解决方案,我会在以后详细介绍IPhone中的解决方案,可是Android平台上实现起来却相对比较麻烦。
  最近利用几天的时间对Android的推送通知服务进行初步的研究,也希望能和大家共同探讨一下。
  2. 几种常见的解决方案实现原理:
  1)轮询(Pull)方式:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池。
  2)SMS(Push)方式:在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,并获取其显示内容进行处理。这是一个不错的想法,我就见过采用这个方案的应用程序。这个方案的好处是,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,我们需要向移动公司缴纳相应的费用。我们目前很难找到免费的短消息发送网关来实现这种方案。
  3)持久连接(Push)方式:这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。IOS平台的推送服务之所以工作的很好,是因为每一台手机仅仅保持一个与服务器之间的连接,事实上C2DM也是这么工作的。不过刚才也讲了,这个方案存在着很多的不足之处,就是我们很难在手机上实现一个可靠的服务,目前也无法与IOS平台的推送功能相比。
  Android操作系统允许在低内存情况下杀死系统服务,所以我们的推送通知服务很有可能就被操作系统Kill掉了。 轮询(Pull)方式和SMS(Push)方式这两个方案也存在明显的不足。至于持久连接(Push)方案也有不足,不过我们可以通过良好的设计来弥补,以便于让该方案可以有效的工作。毕竟,我们要知道GMail,GTalk以及GoogleVoice都可以实现实时更新的。
  3.第一种解决方案:C2DM云端推送功能。
  在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,起初我就是准备采用这个服务来实现自己手机上的推送功能,并将其带入自己的项目中。&
  Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。C2DM服务负责处理诸如消息排队等事务并向运行于目标设备上的应用程序分发这些消息。关于C2DM具体使用过程,大家可以去查阅相关的资料,在这里先让我们了解下大致方案情况。
  下面是C2DM操作过程示例图:
  但是经过一番研究发现,这个服务存在很大的问题: &
  1)C2DM内置于Android的2.2系统上,无法兼容老的1.6到2.1系统;
  2)C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用,如果想要很好的使用,我们的App Server必须也在国外,这个恐怕不是每个开发者都能够实现的;
  3)&不像在iPhone中,他们把硬件系统集成在一块了。所以对于我们开发者来说,如果要在我们的应用程序中使用C2DM的推送功能,因为对于不同的这种硬件厂商平台,比如摩托罗拉、华为、中兴做一个手机,他们可能会把Google的这种服务去掉,尤其像在国内就很多这种,把Google这种原生的服务去掉。买了一些像什么山寨机或者是华为这种国产机,可能Google的服务就没有了。而像在国外出的那些可能会内置。
  有了上述几个方面的制约,导致我最终放弃了这个方案,不过我想利用另外一篇文章来详细的介绍C2DM的框架以及客户端和App Server的相应设置方法,可以作为学习资源让我们有个参考的资料。 即然C2DM无法满足我们的要求,那么我们就需要自己来实现Android手机客户端与App Server之间的通信协议,保证在App Server想向指定的Android设备发送消息时,Android设备能够及时的收到。
  4. 第二种解决方案:MQTT协议实现Android推送功能。
  采用MQTT协议实现Android推送功能也是一种解决方案。MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。
  wmqtt.jar 是IBM提供的MQTT协议的实现。我们可以从()下载该项目的实例代码,并且可以找到一个采用PHP书写的()。
  架构如下图所示:
  wmqtt.jar&是IBM提供的MQTT协议的实现。我们可以从如下站点()它。我们可以将该jar包加入自己的Android应用程序中。
  5.第三种解决方案:RSMB实现推送功能。
  Really Small Message Broker (RSMB)&,他是一个简单的MQTT代理,同样由IBM提供,其查看地址是:。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。
  SAM是一个针对MQTT写的。我们可以从这个地址下载它.
  send_mqtt.php是一个通过POST接收消息并且通过SAM将消息发送给RSMB的PHP脚本。&
  6. 第四种解决方案:XMPP协议实现Android推送功能。
  这是我希望在项目中采用的方案,因为目前它是开源的,对于其简单的推送功能它还是能够实现的。我们可以修改其源代码来适应我们的应用程序。
  事实上Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。关于XMPP协议我在上篇博文中已经介绍,大家可以参考下文章:
  androidpn是一个基于XMPP协议的java开源Android push notification实现,我会在以后的博文中详细介绍androidpn。它包含了完整的客户端和服务器端。经过源代码研究我发现,该服务器端基本是在另外一个开源工程openfire基础上修改实现的,不过比较郁闷的是androidpn的文档是由韩语写的,所以整个研究过程基本都是读源码。
  这是androidpn的项目主页:
  androidpn实现意图如下图所示:
  androidpn 客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要自己编译,可以直接把androidpn客户端里面的asmack.jar拿来使用。客户端利用asmack中提供的XMPPConnection类与服 务器建立持久连接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通知。
  androidpn服务器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采用的是spring框架,这一点与 openfire是不同的。Androidpn服务器包含两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的 XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器, 负责接收用户的Web请求。服务器架构如下:
  最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。
  这个解决方案的最大优势就是简单,我们不需要象C2DM那样依赖操作系统版本,也不会担心某一天Google服务器不可用。利用XMPP协议我们还可以进一步的对协议进行扩展,实现更为完善的功能。 采用这个方案,我们目前只能发送文字消息,不过对于推送来说一般足够了,因为我们不能指望通过推送得到所有的数据,一般情况下,利用推送只是告诉手机端服务器发生了某些改变,当客户端收到通知以后,应该主动到服务器获取最新的数据,这样才是推送服务的完整实现。 XMPP协议书相对来说还是比较简单的,值得我们进一步研究。
  但是在经过一段时间的测试,我发现关于androidpn也存在一些不足之处:
  1.&比如时间过长时,就再也收不到推送的信息了。
  2.&性能上也不够稳定。
&  &3. 如果将消息从服务器上推送出去,就不再管理了,不管消息是否成功到达客户端手机上。
  等等,总之,androidpn也有很多的缺点。如果我们要使用androidpn,则还需要做大量的工作。
  至于详细使用过程,我们会在下个博文中再给大家介绍。
  7.第五种解决方案:使用第三方平台。
  第三方平台有商用的也有免费的,我们可以根据实现情况使用。关于国内的第三方平台,我感觉目前比较不错的就是。关于极光推送目前是免费的,我们可以直接使用。关于详细情况,大家可以查看它的主页:,这里不再详细描述。
  关于MQTT的方案,国内最近出现基于 mqtt 的第三方解决方案 云巴 (),据了解是原 极光推送 CTO 创办的,有兴趣的朋友可以研究下。
  关于国外的第三方平台我也见过几个:/。有兴趣的朋友可以查阅相关信息。使用第三方平台就需要使用别人的服务器,关于这点,你懂的。
  8.第六种解决方案:自己搭建一个推送平台。
  这不是一件轻松的工作,当然可以根据各自的需要采取合适的方案。
  好了,以上是关于在Android中实现推送方式的基础知识及相关解决方案。
  最后,希望转载的朋友能够尊重作者的劳动成果,加上转载地址:&谢谢。
  完毕。 ^_^
阅读(...) 评论()没有更多推荐了,
不良信息举报
举报内容:
服务器主动向android手机端推送消息---------Linux下实现
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!WebService如何主动推送数据到客户端?
作者:用户
浏览:1246 次
我在服务器上建了一个WebService得数据访问服务。客户端访问后取服务器的数据是每问题,但有些数据是不定时更新,我想在服务器更新时,主动通知客户端,接收数据该怎么做呢?WebService+手持设
问题描述我在服务器上建了一个WebService得数据访问服务。客户端访问后取服务器的数据是每问题,但有些数据是不定时更新,我想在服务器更新时,主动通知客户端,接收数据该怎么做呢?WebService+手持设备(WindowsMobile5.0一段时间后换6.5)我再网上找过,未找到合适。我尝试在手持设备上建立Socket,但是提示无法连接。(我用的模拟器,可以上网)解决方案解决方案二:只能是客户端轮询。。。解决方案三:客户端轮询?如果客户端很多不是增加服务器的压力么?而且改动也不多,有时候只是针对部分客户端改动解决方案四:可以参考观察者设计模式(Observer)。解决方案五:WebService怎么用“观察者设计模式”?解决方案六:webservice自己应该解决不了你的问题。这应该是http协议本身的限制。解决方案七:那有没有什么替代解决方案呢?解决方案八:传说中有一种方法我听说啊在服务器端定义一个事件,在客户端实现,这样服务器端触发就行了我没有试过解决方案九:该回复于 13:55:06被版主删除解决方案十:引用2楼luna0的回复:客户端轮询?如果客户端很多不是增加服务器的压力么?而且改动也不多,有时候只是针对部分客户端改动恩,传统的WebService除了轮询别无他法。但是如果用了WCF的Duplex双工通信还有可能实现。解决方案十一:那你的手持设备估计2小时就没电了吧。自己使用http来通信吧。可以使用长连接方法。解决方案十二:另外,先把你的程序在局域网内部的pc上试试。不要假设客户端是在外网上的。解决方案十三:web服务器实现的是http协议,http就是那么简单,要求这个功能怪的不是http,而是你.解决方案十四:客户端可以通过httpget或者httppost来访问服务器。如果服务器端使用.net的HttpListener自己web服务器,那么比较简单,将异步BeginGetContext方法的回调函数中得到的HttpListenerContext类型的对象放到一个List中保存起来,以后在向其写数据(写完执行它的Response.Close方法)即可。而不需要阻塞服务线程。也就是说比如用10个业务服务线程可能就能为上千个客户端提供响应。但是如果在服务器端使用asp.net,比如通过ashx(或者aspx)来返回结果,那么要注意,asp.net默认地并不支持长连接,所以普通的阻塞服务器响应的方式会占用大量服务器线程资源,得不偿失。这需要使用类似于“asp.net异步页”之类的东西。专门做长连接,我从来不使用asp.net,而是自己写web服务器。如果你使用asp.net开发真正的长连接服务器,要注意只应该使用异步响应客户端http请求的编程方式。解决方案十五:在手持设备上做个监听(3G上网),服务器有消息(或数据),就建立连接。然后将消息(或数据)推送出去。“HttpListener”这个好像不适合。也不用长连接吧。有消息才建立连接,会好一点吧。我在手持设备上试WCF的Duplex,不行出错。手持设备WINDOWSMobile6.5解决方案:各个web服务器实现对于长连接,维护的时间是多久?这个没确证过.解决方案:引用15楼dobzhansky的回复:各个web服务器实现对于长连接,维护的时间是多久?这个没确证过.服务可以定义成singleton的。解决方案:用WCF吧,Duplex可以实现服务端和客户端的双方主动发起通讯解决方案:不行的。你还是使用socket处理吧。建立长连接就行了。解决方案:服务本身是被动的,即使是WCF的双工模式实际也需要客户端主动.可以自己编写web服务器.解决方案:听说HTML5可以实现解决方案:引用14楼luna0的回复:在手持设备上做个监听(3G上网),服务器有消息(或数据),就建立连接。然后将消息(或数据)推送出去。“HttpListener”这个好像不适合。也不用长连接吧。有消息才建立连接,会好一点吧。我在手持设备上试WCF的Duplex,不行出错。手持设备WINDOWSMobile6.5回到“如何从服务器建立与局域网(移动网)内部的客户端的链接”这个问题,就等于回到原点,我们的沟通的实用性就等于零了。解决方案:都是客户端调用的,自己做定时调用处理,呵呵,学习了。解决方案:关于WM系统socket连接,建议楼主在www.palmsens.com注册一个ID,然后登录下载sdk里面有两段代码供参考:publicabstractclassTCPServer{publicIPEndPointEprivateSocket_publiceventClientEventClientCpubliceventClientEventClientDprotectedTCPServer(){}privatevoidAcceptClient(IAsyncResultar){Stry{socket=this._serversock.EndAccept(ar);}catch(ObjectDisposedException){}this.HandleIncoming(socket);this.ClientConnect(this,(IPEndPoint)socket.RemoteEndPoint);}internalvoidHandleClientDisconnect(IPEndPointclientEndpoint){this.ClientDisconnect(this,clientEndpoint);this._serversock.BeginAccept(newAsyncCallback(this.AcceptClient),null);}internalabstractvoidHandleIncoming(Socketclientsock);publicvoidStart(){this.Start(null);}publicvoidStart(IPEndPointendpoint){this._serversock=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);if(endpoint!=null){this._serversock.Bind(endpoint);}else{this._serversock.Bind(newIPEndPoint(IPAddress.Loopback,0));}this._serversock.Listen(1);this._serversock.BeginAccept(newAsyncCallback(this.AcceptClient),null);this.Endpoint=(IPEndPoint)this._serversock.LocalEndP}publicvirtualvoidStop(){this._serversock.Close();}publicdelegatevoidClientEvent(objectsender,IPEndPointclientEndpoint);}---------------------------------------------------------------internalclassTCPProxy:TCPServer{privateArrayListclients=newArrayList();privateDpublicTCPProxy(Deviced){this.device=d;}internaloverridevoidHandleIncoming(Socketclientsock){this.clients.Add(newTCPProxyClient(this,clientsock,this.device));}publicoverridevoidStop(){base.Stop();foreach(TCPProxyClientclientinthis.clients){client.Close();}}internalclassTCPProxyClient{privateSocketclientSprivateDprivateTCPPprivateSystem.Threading.TinternalTCPProxyClient(TCPProxyserver,Socketsock,Devicedevice){this.server=this.clientSocket=this.device=this.timer=newSystem.Threading.Timer(newTimerCallback(this.OnCheck),null,100,100);}internalvoidClose(){this.timer.Dispose();this.server.clients.Remove(this);this.server.HandleClientDisconnect((IPEndPoint)this.clientSocket.RemoteEndPoint);this.clientSocket.Close();}privatevoidOnCheck(objectstateinfo){if(this.clientSocket.Available&0){byte[]buffer=newbyte[this.clientSocket.Available];this.clientSocket.Receive(buffer);this.device.Write(Encoding.ASCII.GetString(buffer,0,buffer.Length));}strings=this.device.Read();if(s.Length&0){try{this.clientSocket.Send(Encoding.ASCII.GetBytes(s),0,s.Length,SocketFlags.None);}catch(SocketException){this.Close();}}}}}解决方案:情爱的楼主啊有个东西叫QQ,你发一个信息我就知道了有个东西叫杀毒软件,有了病毒库就更新了thhp,WebService,他们都是Response,Request就是说一个Request对应一个Response长连接,段连接都不行,因为机制问题改成cs的吧!如果没有客户端的话,我怎么知道消息要发给谁啊就想QQ我不登录怎么发信息啊解决方案:基于遵守HTTP协议的WEB程序要实现服务器主动:1:AJAX异步2:长链接推送暂无其他办法解决方案:引用7楼hebeijg的回复:传说中有一种方法我听说啊在服务器端定义一个事件,在客户端实现,这样服务器端触发就行了我没有试过这个说的是Remoting吧楼主可以试试Remtoing,虽说.netcompactframework本身不支持Remoting,好像网上可以找得到实现的解决方案:传说中的5的websocketserverpushwcf的双工通信不然就ajax长轮循
【云栖快讯】青年们,一起向代码致敬,来寻找第83行吧,云栖社区邀请大神彭蕾、多隆、毕玄、福贝、点评Review你的代码,参与互动者将选取50位精彩回复赠送“向代码致敬”定制T恤1件,最终成为“多隆奖”的小伙伴还将获得由阿里巴巴提供的“多隆奖”荣誉证书和奖杯。&&
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
40+云计算产品,6个月免费体验
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
云服务器9.9元/月,大学必备各位大神,怎样让手机客户端能快速联接到推送服务器
按时间排序
一、消息推送基础消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息当我们开发需要和服务器交互的移动应用时,基本上都需要和服务器进行交互,包括上传数据到服务器,同时从服务器上获取数据。一般情况下,客户端与服务器之间通讯客户端是主动的,但这就存在一个问题就是一旦服务器数据有更新或者服务器要下发通知给客户端只能等客户端连接的时候才能实现。这种方式使消息失去了实时性。如何使客户端能够实时的收到服务器的消息和通知,总体来说有两种方式,第一种是客户端使用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服务器,由于国内的网络环境,这个服务经常不可用。B、MQTT协议实现Android推送采用MQTT协议实现Android推送功能也是一种解决方案。MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。wmqtt.jar 是IBM提供的MQTT协议的实现。我们可以从这里()下载该项目的实例代码,并且可以找到一个采用PHP书写的服务器端实现()。C、RSMB实现推送功能Really Small Message Broker (RSMB) ,是一个简单的MQTT代理,同样由IBM提供,其查看地址是:。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。SAM是一个针对MQTT写的PHP库。我们可以从这个地址下载它.D、XMPP协议实现Android推送Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。androidpn是一个基于XMPP协议的java开源Android push notification实现。它包含了完整的客户端和服务器端。但也存在一些不足之处:1) 比如时间过长时,就再也收不到推送的信息了。2)性能上也不够稳定。3)如果将消息从服务器上推送出去,就不再管理了,不管消息是否成功到达客户端手机上。如果我们要使用androidpn,则还需要做大量的工作,需要理解XMPP协议、理解Androidpn的实现机制,需要调试内部存在的BUG。E、使用第三方平台目前国内、国外有一些推送平台可供使用,但是涉及到收费问题、保密问题、服务质量问题、扩展问题等等,又不得不是我们望而却步。四、消息推送完美方案综合以上论述,在建立Android消息推送方面可谓方案多多,但每一款方案都有其优缺点。但无论如何,还是自己搭建一个推送平台是上策。因为你有、他有不如自己有。举个例子,在搭建自有推送平台上建议使用《某某Android消息推送组件》。该组不仅可以拿来即用,并且还可以提供源码以便扩展,实现自己的特殊需求。A、推送原理Android消息推送组件基于XMPP协议实现Android推送。XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。
连接上手机
手机会显示 还需要在手机上开启相关措施
手机上有个启用usb存储模式的吧
手机连接脑后,手机端会出现询问是否开启USB存储模式,选择开;或在手机设置里打开;实在不行打开开发者模式。或者使用各种手机助手,这样在手机助手软件下载可以查看手机内容。
移动电话,或称为无线电话,通常称为手机,原本只是一种通讯工具,早期又有大哥大的俗称[1]
,是可以在较广范围内使用的便携式电话终端,最早是由美国贝尔实验室在1940年制造的战地移动电话机发展而来。1958年[2]
,苏联工程师列昂尼德.库普里扬诺维奇发明了ЛК-1型移动电话,1973年[3]
,美国摩托罗拉工程师马丁·库帕发明了世界上第一部商业化手机。迄今为止已发展至4G时代了。
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:}

我要回帖

更多关于 微信主动推送消息 api 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信