Giter Club home page Giter Club logo

mqtt-services's Introduction

MQTT-Services

Helper-Services for easier implementing MQTT-Broker and Clients

using https://github.com/dotnet/MQTTnet

General Usage

install Nuget-Package https://www.nuget.org/packages/MQTT-Services

dotnet add package MQTT-Services

Add in Startup.cs/Program.cs:

IHost host = Host.CreateDefaultBuilder(args)
    .ConfigureServices((context, services) =>
    {
        // for Broker
        services.AddMqttBrokerService(opts => context.Configuration.GetSection(nameof(MqttBrokerSettings)).Bind(opts));

        // for MQTT-Client
        services.AddMqttClientService(opts => context.Configuration.GetSection(nameof(MqttClientSettings)).Bind(opts));

using following configuration for Broker in appsettings.json:

  "MqttBrokerSettings": {
    "EnableBroker": true,
    "Port": 1883,
    "Users": [
      {
        "UserName": "Hans",
        "Password": "Test"
      }
    ],
    "DelayInMilliSeconds": 30000,
    "TlsPort": 8883
  }

... and for the client:

"MqttClientSettings": {
    "ServiceName": "SampleWorkerService_BrokerAndClient",
    "BrokerHost": "localhost",
    "BrokerPort": 8883,
    "UserName": "Hans",
    "Password": "Test"
  }

For subscribe, receive and publish messages see Sample-Project SampleWorkerService_BrokerAndClient

Use generic Messaging Service

Features

  • simple generic message send
  • generic request/response pattern

Register Service in Startup.cs/Program.cs:

services.AddSingleton<IMessagingManager, MessagingManager>();

Request Message using exchange string to identify the response:

await messagingManager.SendMessageRequest<PersonDataRequest>(payloadPersonRequest, "personExchange");

check for response in ResponseReceived-Event:

messagingManager.ResponseReceived += (sender, args) =>
{
	if (args.Exchange == "personExchange")
	{
		var response = args.Response as PersonDataResponse;
		Console.WriteLine($"Received Response: {response?.Name}");
	}
};

Checkout full example in Sample-Project SampleClientMessaging1 (Sender) and SampleClientMessaging2 (Receiver and Responder)

mqtt-services's People

Contributors

msiggi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.