MQ 发送普通消息
您可以运行以下代码进行消息发送。请按说明正确设置相关参数。
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Runtime.InteropServices;
- using ons;
- namespace ons
- {
- class onscsharp
- {
- static void Main(string[] args)
- {
- //Producer创建和正常工作的参数,必须输入
- ONSFactoryProperty factoryInfo = new ONSFactoryProperty();
- factoryInfo.setFactoryProperty(factoryInfo.ProducerId, "PID_xxxx ");//您在MQ控制台申请的Producer ID
- factoryInfo.setFactoryProperty(factoryInfo.PublishTopics, "xxx");//您在MQ控制台申请的Topic
- factoryInfo.setFactoryProperty(factoryInfo.MsgContent, "xxx");//msg content
- factoryInfo.setFactoryProperty(factoryInfo.AccessKey, "xxx");//AccessKey 阿里云身份验证,在阿里云服务器管理控制台创建
- factoryInfo.setFactoryProperty(factoryInfo.SecretKey,"xxx");//SecretKey 阿里云身份验证,在阿里云服务器管理控制台创建
- //创建producer
- ONSFactory onsfactory = new ONSFactory();
- Producer pProducer = onsfactory.getInstance().createProducer(factoryInfo);
- //在发送消息前,必须调用start方法来启动Producer,只需调用一次即可
- pProducer.start();
- Message msg = new Message(
- //Message Topic
- factoryInfo.getPublishTopics(),
- //Message Tag
- "TagA",
- //Message Body
- factoryInfo.getMessageContent()
- );
- // 设置代表消息的业务关键属性,请尽可能全局唯一。
- // 以方便您在无法正常收到消息情况下,可通过 MQ 控制台查询消息并补发。
- // 注意:不设置也不会影响消息正常收发
- msg.setKey("ORDERID_100");
- //发送消息,只要不抛出异常,就代表发送成功
- try
- {
- SendResultONS sendResult = pProducer.send(msg);
- }
- catch(ONSClientException e)
- {
- //发送失败处理
- }
- // 在应用退出前,必须销毁Producer对象,否则会导致内存泄露等问题
- pProducer.shutdown();
- }
- }
- }