package com.njcn.roma.producer;

import com.alibaba.fastjson.JSON;
import com.huawei.it.eip.ump.client.producer.Producer;
import com.huawei.it.eip.ump.client.producer.SendResult;
import com.huawei.it.eip.ump.common.exception.UmpException;
import com.huawei.it.eip.ump.common.message.Message;

import java.io.UnsupportedEncodingException;

/**
 * roma
 *
 * @author cdf
 * @date 2024/6/6
 */
public class ProducerTest {
    public static void main(String[] args) throws UmpException {
        Producer producer = new Producer();
        producer.setUmpNamesrvUrls("25.36.190.3:19776"); // 设置MQS的服务器地址
        producer.setAppId("X_DNZLXT"); // 设置客户端账号
        producer.setAppSecret("IoKU7u47seGwzO4CqGmCaQ=="); // 设置客户端密钥
        producer.setTopic("T_DNZLXT"); // 设置Topic Name
        producer.setEncryptTransport(false); // 设置是否需要加密传输
        producer.start();
        // 启动消息生产者，建议在应用程序启动时调用（即执行此代码）
        // 发送消息的业务逻辑
        Message message = new Message();
        message.setBusinessId("id-123456789"); // 设置消息业务标示，便于追踪消息轨迹
        message.setTags("tag-1"); // 设置消息标签

        try {
            byte[] tem ="body_test_cdfcdfcdfcdf".getBytes("UTF-8");
            message.setBody(tem);
            // 消息体，推荐使用
            //JSON.toJSONString(message).getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }


    //注：MQS不对二进制消息进行转换，Producer和Consumer需协商好序列化和反序列化方式
        try {
            SendResult sendResult = producer.send(message);

            //2019-10-21 华为保密信息,未经授权禁止扩散 第 9 页, 共 11 页
            if (sendResult.isSuccess()) {
            // 发送成功的逻辑处理
            } else {
            // 发送失败的逻辑处理
            }
        } catch (UmpException e) {
        // 异常处理
            producer.shutdown(); // 关闭消息生产者，建议在应用程序关闭的时候调用
        }

    }





}
