【发布时间】:2015-06-22 08:13:49
【问题描述】:
是否可以不使用 TLS 加密将 AMQP 数据包/遥测数据发送到 Azure 事件中心?
我想这样做的原因是想看看一个未加密的 AMQP 数据包到底长什么样。
我尝试了以下代码(请参阅 amqpTransSetting.UseSslStreamSecurity = false,但它仍然会加密通信。
var amqpTransSetting = new AmqpTransportSettings();
amqpTransSetting.UseSslStreamSecurity = false;
var cs = @"Endpoint=sb://companyname-ns.servicebus.windows.net/;SharedAccessKeyName=EventHubPublisher;SharedAccessKey=84EHa5NNllnZBzH5ksogvNfhMWtIokdTdjxXXXXXXX=";
var builder = new ServiceBusConnectionStringBuilder(cs)
{
TransportType = TransportType.Amqp,
};
var client = EventHubClient.CreateFromConnectionString(builder.ToString(), "companyname-eh");
int sentCount = sendCount;
string infoText;
for (int i = 0; i < sendCount; i++)
{
try
{
if (MessageType.Text == "Fake Sensor")
{
infoText = "Sent using AMQP protocol";
}
else
{
infoText = "Sent using AMQP protocol";
}
Random rnd = new Random();
int intTemp = rnd.Next(15, 25);
int intHum = rnd.Next(50, 80);
var e = new Event
{
MessageType = MessageType.Text,
Temp = intTemp,
Humidity = intHum,
Location = Location.Text,
Room = Room.Text,
Info = infoText
};
var serializedString = JsonConvert.SerializeObject(e);
var data = new EventData(Encoding.UTF8.GetBytes(serializedString))
{
PartitionKey = rnd.Next(6).ToString()
};
// Set user properties if needed
data.Properties.Add("Type", "Telemetry_" + DateTime.Now.ToLongTimeString());
await client.SendAsync(data).ConfigureAwait(false);
}
catch (Exception exp)
{
Console.WriteLine("Error on send: " + exp.Message);
sentCount--;
}
【问题讨论】:
-
我建议你问一个关于你想要实现什么的新问题(或修改这个)。从下面的 cmets 听起来您可能对 HTTP 接口感到满意(我从未使用过它)。如果您期望有大量嵌入式设备,但任何单个设备的容量都不是特别大(即每台设备每秒几个就可以了),那么它应该更轻,并且每个集线器的 AMQP 连接数有限制。
标签: azure encryption azure-eventhub