JavaWeb项目中实现云巴推送

本文是基于云巴推送的RESTful API实现的,在这之前,我有试过用Socket.io API来实现,也能推送成功,只是它只支持推送到单个频道或别名,而我的项目中会用到同时推送到多个用户或部门。
写这篇文章的初衷是因为云巴官方的文档实在太少了,或许是自己以前没有接触过推送,总之在看着官网文档的情况下去实现,很麻烦,自己在这个过程中走了很多弯路,所以在这里写出来,希望大家能有个借鉴。
如果你也像我一样同时用到了定时推送,可以参考我的另一篇博文:
quartz与spring整合实现动态任务增删改查

1、项目的框架是Spring+SpringMVC+MyBatis;
2、因为要在服务端以POST方式发送数据到云巴服务器,所以用到了httpcomponents-client-4.3.4,可以在Apache的网官去下载,只要下面两个包就可以了。

  • 必须的jar包
    • httpcore-4.3.2.jar
    • httpclient-4.3.4.jar

代码实现

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

public class YunBaTest {

    public static void testPost() throws Exception {
        String url = "http://rest.yunba.io:8080";
        String appkey = ""; //你创建的应用的appkey
        String seckey = ""; //应用的Secret Key
        HttpClient client = HttpClientBuilder.create().build();
        HttpPost post = new HttpPost(url);
        post.setHeader("Content-type", "application/json");
        //以JSON格式推送
        String json = "{'method':'publish', 'appkey':'"+appkey+"', 'seckey':'"+appkey+"', 'topic':'topic1'}";
        JSONObject jo = new JSONObject(json);
        //要推送的消息
        jo.put("msg", "你好吗");
        StringEntity params = new StringEntity(jo.toString());
        post.setEntity(params);
        HttpResponse response = client.execute(post);
        String result=null;
        if (response.getStatusLine().getStatusCode() == 200) {
            result = EntityUtils.toString(response.getEntity(),"UTF-8");
            System.out.println("发送成功");
        }
        //打印返回结果
        System.out.println("result:" + result);
    }
}

返回结果如果像这样:{“status”:0, “messageId”: 2568857aced},就代表推送成功。

也可以在云巴官网中查看推送是否成功:
1. 登录后打开[我的应用],点击[发布消息];
2. 在频道名称中输入你测试的频道名,我的代码中是”topic1”;
3. 在消息内容中输入消息,点击发送;
4. 然后再运行测试代码,如果消息框中出现了推送的消息,那肯定是推送成功了。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值