示例代码
更新时间:
本文提供云消息队列 MQTT 版的云端.NET SDK示例代码。
Demo示例
using System.Diagnostics.Tracing;
using System.Text;
using AliyunOnsmqttServerSdk;
using AliyunOnsmqttServerSdk.Common;
using AliyunOnsmqttServerSdk.Config;
using AliyunOnsmqttServerSdk.Model;
class Program
{
static void Main(string[] args)
{
//云消息队列 MQTT 版的云端接入点。
string domain = "post-cn-******-server-internet.mqtt.aliyuncs.com";
//云消息队列 MQTT 版的实例ID。
string instanceId = "post-cn-******";
//AccessKey ID。
string ak = "******";
//AccessKey Secret。
string sk = "******";
//父级Topic。
string firstTopic = "topicA";
//Group ID。
string gid = "GID-test";
int port = 5672;
ChannelConfig channelConfig = new ChannelConfig(domain, instanceId, ak, sk, port);
ServerConsumer serverConsumer = new ServerConsumer(channelConfig);
serverConsumer.Start();
// 订阅一级Topic。
serverConsumer.SubscribeTopic(firstTopic,
(string msgId, MessageProperties messageProperties, byte[] bArr) =>
{
Console.WriteLine($"recv:{msgId}");
});
// 订阅客户端上下线事件。
serverConsumer.SubscribeStatus(gid,
(statusNotice) =>{
Console.WriteLine($"recv: {statusNotice.ClientId},{statusNotice.EventType}");
});
ProducerConfig producerConfig = new ProducerConfig();
ServerProducer serverProducer = new ServerProducer(channelConfig, producerConfig);
serverProducer.Start();
string s = "test";
Encoding encoding = Encoding.UTF8;
byte[] payload = encoding.GetBytes(s);
try
{
for(; ; )
{
Thread.Sleep(1000);
SendResult sendResult = serverProducer.SendMessage(firstTopic+"/t2", payload);
Console.WriteLine($"send: {sendResult.MsgId}");
}
}
catch(Exception e)
{
Console.WriteLine(e.StackTrace);
}
}
}
参数说明
参数 | 说明 |
domain | 云消息队列 MQTT 版实例的接入点。客户端通过接入点连接云消息队列 MQTT 版服务端。 使用云端SDK接入云消息队列 MQTT 版时,需要填写的接入点格式如下: 重要 仅实例内核版本为V3.3.0且实例地域属于中国内地的实例支持云端SDK接入。
MQTT实例ID可在云消息队列 MQTT 版控制台实例详情页面的基础信息区域查看。 |
instanceId | 您在云消息队列 MQTT 版控制台创建的实例的ID。可在云消息队列 MQTT 版控制台实例详情页面的基础信息区域查看。 |
accessKey | 您在阿里云账号管理控制台中创建的AccessKey ID,用于身份认证。获取方式,请参见创建AccessKey。 说明 AccessKey ID和AccessKey Secret建议从环境变量或配置文件中读取,避免硬编码可能造成的账号泄露风险。 |
secretKey | 您在阿里云账号管理控制台中创建的AccessKey Secret,用于身份认证。获取方式,请参见创建AccessKey。 说明 AccessKey ID和AccessKey Secret建议从环境变量或配置文件中读取,避免硬编码可能造成的账号泄露风险。 |
firstTopic | 您在云消息队列 MQTT 版控制台创建的Topic。 |
gid | 您在云消息队列 MQTT 版控制台创建的Group的ID。 |
port | 协议端口。端口和使用的协议必须匹配,云端SDK中,该参数值固定为5672。 |
文档内容是否对您有帮助?