极光推送,由名字可知是一款推送软件。由于android自带的推送在大陆被墙掉了,所以在国内用第三方推送的用户特别多,比较有名的有极光推送、百度云推送。推送的主要用途是用来推送消息给客户端,比如说推送一个消息给android客户端或才iphone客户端,让所有的用户都接到这个通知。
我现在在写的这个程序是利用极光推送,写一个聊天程序,例用极光推送可以发到指定某人、某组或者全体用户。客户端及服务器端有各自对应的jar包,现在这里主要讲解服务器端的编码。
服务器端发送到指定用户时,可以使用方法Audience.alias() 这样就可以发送到指定用户,比如我在下面利用如下方法:
PushPayload.Builder payload = PushPayload.newBuilder()
.setPlatform(Platform. android_ios());
Map<String, String> extras = new HashMap<String,
String>();
extras.put( "channel", "channel" );
/* payload = payload
.setNotification(Notification.ios("xiaowen"
+ " 给您发送了一条信息", extras))
.setAudience(Audience.alias(" qqqq"))
.setMessage(cn.jpush.api.push.model.Message.newBuilder()
.setMsgContent(" addd")
.addExtras(extras)
.setTitle("title")
.build());*/
payload = payload
.setNotification(Notification.android( "alert","xiaowen" + "
给您发送了一条信息" , extras))
.setAudience(Audience. alias("qqqq"))
.setMessage(cn.jpush.api.push.model.Message.newBuilder()
.setMsgContent( "addd")
.addExtras(extras)
.setTitle( "title")
.build());
在这里我只发送到android客户端,把ios客户端的代码屏弊掉了,在这里我没有测试ios客户端,因为现在我手头没有ios手机,在这里不做测试,所以只写android客户端。我写的这个程序,Config 文件中主要放了JPUSH_APPKEY 跟JPUSH_MASTER_SECRET 通过这两个东西可以是那些客户端跟这个服务器端进行通信。发送到对应的用户名,可以在http请求时加入到session中。总体设计思路:是客户端A向客户端B发送消息时,是通过服务器进行转发的,A先发送到服务器,服务器再调用极光推送的API,将消息由极光推送发送到B。在服务器端可以加入对消息的存储等操作,可以有作将来的查看历史记录等。
如果想发送给指定的多个用户,则可以把他们当成一个组,可以给他们设置一个TAG,向指定的这个TAG中发送消息,则就可以通过服务器向这个用户发送消息。