提交 1595a83d 编写于 作者: 麦壳饼's avatar 麦壳饼

add mqtt client

上级 f4f7e808
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MQTTnet" Version="3.0.2" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
</ItemGroup>
</Project>
using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Client.Options;
using Newtonsoft.Json;
using System;
using System.Threading.Tasks;
namespace MQTTClient
{
internal class Program
{
private static void Main(string[] args)
{
Console.WriteLine("Hello World!");
MQTTnet.MqttFactory factory = new MQTTnet.MqttFactory();
var client = factory.CreateMqttClient();
var options = new MqttClientOptionsBuilder()
.WithClientId(Guid.NewGuid().ToString())
.WithTcpServer("localhost")
.WithCredentials("3cb97cd31fbc40b08d12ec47a6fad622")//token
.Build();
Task.Run(async () =>
{
await client.ConnectAsync(options);
do
{
var message = new MqttApplicationMessageBuilder()
.WithTopic("/devices/me/telemetry")
.WithPayload(JsonConvert.SerializeObject(new
{
RandomString = Guid.NewGuid().ToString(),
NowTime = DateTime.Now
}))
.Build();
Console.WriteLine(message.ConvertPayloadToString());
await client.PublishAsync(message);
await Task.Delay(TimeSpan.FromSeconds(10));
} while (Console.ReadKey().Key != ConsoleKey.Escape);
await client.DisconnectAsync();
}).Wait();
}
}
}
\ No newline at end of file
### Topic
- Upload telemetry to device
/devices/me/telemetry
- Upload telemetry data to gateway's device
/devices/devicename/telemetry
- Upload attributes to device
/devices/me/attributes
- Upload attributes data to gateway's device
/devices/devicename/telemetry
......@@ -19,6 +19,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Clients", "Clients", "{897B
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CoAPClient", "Clients\CoAPClient\CoAPClient.csproj", "{EE801BD6-5757-4A55-BC94-7FBA6E98F393}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MQTTClient", "Clients\MQTTClient\MQTTClient\MQTTClient.csproj", "{FD6857C8-295B-492C-B959-C8773149B96D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -37,12 +39,17 @@ Global
{EE801BD6-5757-4A55-BC94-7FBA6E98F393}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE801BD6-5757-4A55-BC94-7FBA6E98F393}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE801BD6-5757-4A55-BC94-7FBA6E98F393}.Release|Any CPU.Build.0 = Release|Any CPU
{FD6857C8-295B-492C-B959-C8773149B96D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD6857C8-295B-492C-B959-C8773149B96D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD6857C8-295B-492C-B959-C8773149B96D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD6857C8-295B-492C-B959-C8773149B96D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{EE801BD6-5757-4A55-BC94-7FBA6E98F393} = {897B15C4-C504-4B7C-B01F-E6162959B665}
{FD6857C8-295B-492C-B959-C8773149B96D} = {897B15C4-C504-4B7C-B01F-E6162959B665}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CD7ADD62-E3BD-453A-B653-BC70DB9FF817}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册