推荐回答
几种常见的解决方案实现原理1)轮询Pull方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。2)SMSPush方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。 3)持久连接Push方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。3、消息推送解决方案概述A、C2DM云端推送方案在Android手机平台上,Google提供了C2DM如果将消息从服务器上推送出去,就不再管理了,不管消息是否成功到达客户端手机上。如果我们要使用androidpn,则还需要做大量的工作,需要理解XMPP协议、理解Androidpn的实现机制,需要调试内部存在的BUG。
黄登红2019-12-22 00:54:35
提示您:回答为网友贡献,仅供参考。
其他回答
-
官方提供的,可以在eclipse上运行。为方便开发者更灵活方便的使用云推送服务进行开发,云推送服务按照HTTPOpenAPI规范为开发者提供REST风格的HTTP和HTTPS服务端接口。URL里的resource为操作的资源名,这里的resource可能为channel固定值,也有可能是具体的channel_id。query_string}由通用参数部分和具体API调用参数部分组成。query_string}中的key/value对都必须经过urlencode处理,且必须是UTF-8编码。对于GET请求,{query_string}必须放在QUERY参数中传递,即放在“?”后面。对于POST请求,{query_string}放在POST参数中传递。本文中同一接口的HTTP和HTTPS版参数一致,请按需使用。请求方式目前所有的提交类接口仅支持POST方式,查询类接口同时支持POST方式和GET方式。通用参数以下参数是所有云推送服务API都会用到的统一系统级参数。参数名称类型是否必需描述methodstring是API的资源操作方法名。apikeystring是API的资源操作方法名,访问令牌,明文AK,可从此值获得App的信息,配合sign中的sk做合法性身份认证timestampuint是用户发起请求时的unix时间戳,本次请求签名的有效时间为该时间戳+10分钟。signstring是调用参数签名值,与apikey成对出现。expiresuint否用户指定本次请求签名的失效时间。格式为unix时间戳形式。vuint否API版本号,默认使用最高版本。注意:调用时timestamp必须设置,而expires可选设置,用于防止replay型攻击。为保证防止replay攻击算法的正确有效,请保证客户端系统时间正确。参数编码由于云推送服务API的数据交互格式为JSON,所以要求请求参数进行UTF-8编码。响应数据包格式规范响应数据包的格式为JSON,输出内容为UTF-8编码。响应数据包的responseheade中的Content-Type头会被设为:application/json;charset=utf-8JSON响应输出格式响应输出内容符合以下规范:如果交互正常则返回httpstatuscode为200,其它错误内容参见下面的错误码定义。HttpAPI调用失败时平台返回的异常响应输出由error_code,error_msg参数组成,分别用于描述错误码和错误信息。具体参见下面的《错误码定义》。交互正常时响应里会有一个request_id字段,该字段的值由webserver生成,返回给用户方便问题追查与定位。response_params属性是一个二级json,由n个包含key和value属性的对象组成;表示API返回的数据内容。响应示例正确响应格式化为“key=value”格式,如“k1=v1”、“k2=v2”、“k3=v3”;将格式化好的参数键值对以字典序升序排列后,拼接在一起,如“k1:v1,k2:v2,k3:v3”,并将httpmethod和url按顺序拼接在这个字符串前面;在拼接好的字符串末尾追加上应用的secret_key,并进行urlencode,形成base_string;上述字符串的MD5值即为签名的值。
赵高博2019-12-22 01:00:04
-
云,则应用将不能正常接收消息。绑定失败的原因有多种,如网络原因,或accesstoken过期。请不要在出错时进行简单的startWork调用,这有可能导致死循环。可以通过限制重试次数,或者在其他时机重新调用来解决。finalinterrorCode=intent.getIntExtraPushConstants.EXTRA_ERROR_CODE,PushConstants.ERROR_SUCCESS;//返回内容finalStringcontent=newStringintent.getByteArrayExtraPushConstants.EXTRA_CONTENT;//用户在此自定义处理消息,以下代码为demo界面展示用Log.dTAG,"onMessage:method:"+method;Log.dTAG,"onMessage:result:"+errorCode;Log.dTAG,"onMessage:content:"+content;}}}通过在入口Activity的onCreate方法中进行推送服务的注册绑定后,即可在推送管理后台或是自己的应用服务器上进行消息推送的操作了。PushManager.startWorkgetApplicationContext,PushConstants.LOGIN_TYPE_API_KEY,"you_api_key";另外,云推送提供php、java等Server端的SDK供开发者在自己的服务器上实现推送服务进行定制化管理和操作。四、单服务单通道机制云推送实现了单服务单通道的机制,如果在一台Device上安装了多款PushSDK的应用,不会为每个应用都创建PushService,而是会采用多应用共享一个PushService的模式。这样既能减少资源消耗也能降低网络流量。PushService运行于一个独立进程,没有和主进程运行于同一进程,所以主进程不需要常驻内存,当有新的Push消息时,PushService会通过Intent发送消息给主进程进行处理。通过Intent,以指定目标应用包名的方式,发送私有消息给应用。应用即不能接收不属于自己的消息,也不能截取别人的消息,同时又降低了消耗,如下为示意图:后记:如今,国内提供Android推送服务的还有很多家,例如个推和极光推送等,实现的原理大同小异,开发者可以根据自身需要进行选择。
齐春娟2019-12-22 00:36:37
-
1.下载:下载是利用的服务器帮助下载网络资源,下载地址为的服务器,下载后保存在本机上。2.推送:更新云管家到V4.6版本后,可支持推送功能。多台电脑使用相同帐号登录云管家后,一台电脑可以将网盘内文件推送到其他电脑进行下载。例如可以从手机端推送任务到电脑上自动下载,这样就可以节省手机流量的同时远程控制下载,利用闲置的带宽。3.两者的差别在于一个是下载到本机,一个是可以控制下载到其他登陆的设备。具体可以参考这个帖子的教程:http://tieba.baidu.com/p/2930885567。
齐朝勇2019-12-22 00:18:50
-
大方向有两种,一种,自己搭推送服务器,一般主流使用XMPP协议,也有相对成熟的框架和开源项目给你使用。优点是可以自由控制因为代码都是自己写的,缺点是搭建难度大,要吃透很花时间,而且心跳包的控制和终端的电量消耗都需要一定的水平另外一种是用第三方推送,比如云推送,优点是简单易用,不用考虑服务端的实现,将推送任务全部交给,然后有相对完整的文档我这的上一个项目使用的是云推送,用户数量和并发数量现在都不多,基本上能满足需求。
黄皓莉2019-12-22 00:06:32