Java工程服务端实现给客户端推送消息

最近给目前做的项目添加了一个新的功能,给客户端推送消息

我用的是百度做的云推送,具体介绍请参考:http://developer.baidu.com/

贴上我稍微改造了一下的服务器端推送工具类

/**
	 * android单播
	 * @param messageCenter
	 * @param userBean
	 * @return
	 */
	public static boolean singleAndroidPush(MessageCenter messageCenter,UserBean userBean) {
		boolean flag = true;
		// 1. 设置developer平台的ApiKey/SecretKey
		String apiKey = Const.BAIDU_APP_KEY;
		String secretKey = Const.BAIDU_APP_SECRET;
		ChannelKeyPair pair = new ChannelKeyPair(apiKey, secretKey);
		
		// 2. 创建BaiduChannelClient对象实例
		BaiduChannelClient channelClient = new BaiduChannelClient(pair);
		
		// 3. 若要了解交互细节,请注册YunLogHandler类
		channelClient.setChannelLogHandler(new YunLogHandler() {
			@Override
			public void onHandle(YunLogEvent event) {
				// TODO Auto-generated method stub
				System.out.println(event.getMessage());
			}
		});
		
		try {
			// 4. 创建请求类对象
			PushUnicastMessageRequest request = new PushUnicastMessageRequest();
			request.setDeviceType(3); // device_type => 1: web 2: pc 3:android 4:ios 5:wp	
			request.setChannelId(Long.getLong(messageCenter.getAppChannelID()));
			request.setUserId(messageCenter.getAppUserID());
			
			// 若要显示通知,
			request.setMessageType(1);	// 默认是0		
			// 此格式不可更改
			String message = "{\"title\":\""+messageCenter.getTitle()+"\",\"description\":\""+messageCenter.getContent()+"\"}";
			System.out.println("android推送消息:"+message);
			request.setMessage(message);
 			
			
			// 5. 调用pushMessage接口
			PushUnicastMessageResponse response = channelClient.pushUnicastMessage(request);
				
			// 6. 认证推送成功
			Assert.assertEquals(1, response.getSuccessAmount());
			
		} catch (ChannelClientException e) {
			// 处理客户端错误异常
			flag = false;
			e.printStackTrace();
		} catch (ChannelServerException e) {
			// 处理服务端错误异常
			flag = false;
			System.out.println(
					String.format("request_id: %d, error_code: %d, error_message: %s" , 
						e.getRequestId(), e.getErrorCode(), e.getErrorMsg()
						)
					);
		}finally{
			return flag;
		}
		
	}
至于客户端接受推送的程序可以参考百度给出的案例

到目前的使用心得,推送偶尔会有延迟,其他还好!


转载于:https://my.oschina.net/u/874134/blog/152614

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值