百度云推送服务器
‘壹’ 百度云推送java服务器怎么弄
网络云(Bai Cloud)是网络推出的一项云存储服务,首次注册即有机会获得2T的空间,已覆盖主流PC和手机操作系统,包含Web版、Windows版、Mac版、Android版、iphone版和Windows Phone版,用户将可以轻松将自己的文件上传到网盘上,并可跨终端随时随地查看和分享。
网络云推送
网络提供了完整的Demo帮助开发者集成云推送服务,推送服务SDK通过.jar包和.so文件的方式可以集成到我们自己的工程中。在此之前,需要到网络开发者中心进行应用注册并获取API Key,这个作为使用推送服务应用的唯一标示,具体流程我就不赘述了,需要使用的话可以直接访问网络开发者中心进行查看。
下面主要看看Android_SDK的整体概览和内部运行机制:
上图是网络云推送Android_SDK的框架图,通过SDK可以绕过复杂的Push HTTP/HTTPS API直接和Push服务器进行交互,主要提供如下功能:
Push服务初始化以及Client注册绑定
创建或删除标签(Tag)
接收Push Server的通知并提供自定义展现消息方式
推送统计分析功能,包括通知的点击和删除统计以及应用使用情况统计
富媒体推送
在Android端,总共实现了三个Receiver和一个Service,其中,一个Receiver是用来处理注册绑定后接收服务端返回的channelID等信息:
<receiver android:name="com..android.pushservice.RegistrationReceiver" android:process=": bdservice_v1"> <intent-filter> <action android:name="com..android.pushservice.action.METHOD " /> <action android:name="com..android.pushservice.action.BIND_SYNC " /> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <data android:scheme="package" /> </intent-filter> </receiver>
第二个Receiver是用于接收系统消息以保证PushService正常运行:
<receiver android:name="com..android.pushservice.PushServiceReceiver" android:process=": bdservice_v1"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="com..android.pushservice.action.notification.SHOW" /> <action android:name="com..android.pushservice.action.media.CLICK" /> </intent-filter> </receiver>
第三个Receiver就是开发者自己实现的用来接收并处理推送消息:
<receiver android:name="your.package.PushMessageReceiver"> <intent-filter> <!-- 接收 push 消息 --> <action android:name="com..android.pushservice.action.MESSAGE" /> <!-- 接收 bind、setTags 等 method 的返回结果 --> <action android:name="com..android.pushservice.action.RECEIVE" /> </intent-filter> </receiver>
一个Service就是在后台运行的用于保障与Push Server维持长连接并做相关处理的后台服务:
<service android:name="com..android.pushservice.PushService" android:exported="true" android:process=" bdservice_v1"/> <!-- push service end -->
在开发者自己需要处理的广播接收器中,可以对接收到的推送消息进行处理,Push消息通过 action为com..android.pushservice.action.MESSAGE的Intent把数据发送给客户端your.package.PushMessageReceiver,消息格式由应用自己决定,PushService只负责把服务器下发的消息以字符串格式透传给客户端。接口调用回调通过action为com..android.pushservice.action.RECEIVE的Intent 返回给your.package.PushMessageReceiver。
PushMessageReceiver.java
/** * Push消息处理receiver * @Author Ryan * @Create 2013-8-6 下午5:59:38 */ public class PushMessageReceiver extends BroadcastReceiver { public static final String TAG = PushMessageReceiver.class.getSimpleName(); @Override public void onReceive(final Context context, Intent intent) { if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) { //获取消息内容 String message = intent.getExtras().getString( PushConstants.EXTRA_PUSH_MESSAGE_STRING); //消息的用户自定义内容读取方式 Log.i(TAG, "onMessage: " + message); } else if (intent.getAction().equals(PushConstants.ACTION_RECEIVE)) { //处理绑定等方法的返回数据 //PushManager.startWork()的返回值通过PushConstants.METHOD_BIND得到 //获取方法 final String method = intent .getStringExtra(PushConstants.EXTRA_METHOD); //方法返回错误码。若绑定返回错误(非0),则应用将不能正常接收消息。 //绑定失败的原因有多种,如网络原因,或access token过期。 //请不要在出错时进行简单的startWork调用,这有可能导致死循环。 //可以通过限制重试次数,或者在其他时机重新调用来解决。 final int errorCode = intent .getIntExtra(PushConstants.EXTRA_ERROR_CODE, PushConstants.ERROR_SUCCESS); //返回内容 final String content = new String( intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT)); //用户在此自定义处理消息,以下代码为demo界面展示用 Log.d(TAG, "onMessage: method : " + method); Log.d(TAG, "onMessage: result : " + errorCode); Log.d(TAG, "onMessage: content : " + content); } } }
通过在入口Activity的onCreate方法中进行推送服务的注册绑定后,即可在推送管理后台或是自己的应用服务器上进行消息推送的操作了。
PushManager.startWork(getApplicationContext(),PushConstants.LOGIN_TYPE_API_KEY, "you_api_key");
另外,云推送提供php、java等Server端的SDK供开发者在自己的服务器上实现推送服务进行定制化管理和操作。
四、单服务单通道机制
网络云推送实现了单服务单通道的机制,如果在一台Device上安装了多款Push SDK的应用,不会为每个应用都创建PushService,而是会采用多应用共享一个PushService的模式。这样既能减少资源消耗也能降低网络流量。PushService运行于一个独立进程,没有和主进程运行于同一进程,所以主进程不需要常驻内存,当有新的Push消息时,PushService会通过Intent发送消息给主进程进行处理。通过Intent,以指定目标应用包名的方式,发送私有消息给应用。应用即不能接收不属于自己的消息,也不能截取别人的消息,同时又降低了消耗,如下为示意图:
后记:如今,国内提供Android推送服务的还有很多家,例如个推和极光推送等,实现的原理大同小异,开发者可以根据自身需要进行选择。
‘贰’ 百度云推送服务器端如何获取user_id呢
这个确实是个问题。我想你说的user_id应该是推送时要使用的user_id,是云服务器配置给客户端的唯一标识。 但你客户端APP的SERVER端是不知道你的这个标识的,服务器端触发推送的时候是无法推送到客户端APP的。目前可能只有将APP和云服务器配置给你的user_id 回传到你们自己的服务器端。由你们APP服务器端长期维护这两个标识的对映关系。网络云推送目前好像不会维护这个对映关系。
包括tag标签和其对应的user_id 这种一对多的关系 可能还是需要APP服务器端自己维护;目测网络云推送服务没有维护这些关联关系。
‘叁’ android使用百度云推送的服务器端怎样实现
网络云推送可以实现你这种需求,可以指定推给某个ID,也可以指定推给哪个组,还可以推给所有人
我们用极光推送,客户端和服务端配置的都简单,有Demo可直接运行的.
‘肆’ 极光推送、百度云推送、个推,怎样看极光推送服务好坏
极光推送服务好,极光IM为全球开发者提供稳定高效的即时通讯服务,让你的“APP”聊起来。主要可以从一下几个方面来看:1、共享通道:JMessage与JPush共用一条TCP长连接,扩展自定义协议,继承JPush的安全、高效、稳定。
2、稳定可靠:自定义的消息同步机制,确保消息不丢失。
3、海量并发:共享极光推送多区域分布接入资源,支持上亿级用户同时在线,日均千万级消息并发。
4、定制化服务:提供私有云-企业定制化服务,贴身定制解决方案,使用企业私有资源通道,提供全方位的服务。
极光有着多样的聊天功能,拥有文字、表情、图片、语音、小视频、文件、位置、自定义消息等多种消息类型,支持单聊、群聊等聊天方式。
‘伍’ 云推送的服务特色
1、最省:省电、省流量、零成本
网络云推送采用单一终端中的多个应用共享一个网络云推送服务进程和一条TCP长连接,最大化的降低客户端的资源消耗,省电省流量。此外网络云推送的消息推送服务完全免费,开发者使用零成本。
2、最稳定:消息到达率超98%
网络云推送后台拥有强大的服务器集群,具有极高的吞吐能力,您的消息将以最快的速度送达用户端。网络云推送长期为网络搜索、地图、新闻等数十个千万级应用提供稳定、安全的服务支持,有效验证了云推送服务的稳定性与安全性,经内部测试消息到达率超98%。
3、最便捷:强大的推送控制台
网络云推送为开发者准备了强大的管理后台,开发者可以在后台可以轻松便捷的操作消息推送以及查看用户的信息统计。
‘陆’ 百度云推送任务是什么意思
更新网络云管家到V4.6版本以上,可支持推送功能。
多台电脑使用相同帐号登录云管家后,
一台电脑可以将网盘内文件推送到其他电脑进行下载。
‘柒’ 使用百度云推送时,PHP服务端如何实现即时推送
网络云推送可以实现你这种需求,可以指定推给某个ID,也可以指定推给哪个组,还可以推给所有人我们用极光推送,客户端和服务端配置的都简单,有Demo可直接运行的.
demo可以直接运行的(有个main方法测试的)
不过,如果不是一定要实时消息,还是不要用这种第三方的推送服务器了,毕竟是人家的服务器
而且推送次数,频率什么的都有限制,还不如你在移动端做轮询处理,即1分钟请求一下服务器,或者30秒请求一下服务器,看看有没有数据什么的.
当然也可以自己搭建推送服务器,xmpp协议什么的.好复杂
用极光推送你试试。
更多问题到问题求助专区(http://bbs.hounwang.com/)