Giter Site home page Giter Site logo

gnatmq's Introduction

GnatMQ

GnatMQ - MQTT Broker for .NET and WinRT

Alternatives

This repository is not well maintained, and the code is a bit dated. MQTTnet is the direct alternative, and better maintained. dotNetty is a Microsoft-supported generic messaging server that supports MQTT transport. That's a good option is you want to use the protocol to talk to a server, rather than to use it as a broker.

Description

A broker (server) for the MQTT protocol, an M2M Internet-of-Things communication protocol based on .Net Framework.

MQTT, short for Message Queue Telemetry Transport, is a light weight messaging protocol that enables embedded devices with limited resources to perform asynchronous communication on a constrained network.

Developed by IBM and Eurotech, the MQTT protocol is released as an open standard and being standardized by OASIS (Organization for the Advancement of Structured Information Standard), a non-profit consortium that drives the development, convergence and adoption of open standards for the global information society.

In general, the MQTT environment consists of multiple clients and a server, called broker.

This project is created to develop an MQTT broker. While there are other MQTT broker project, this project is created to provide additional resources to learn and engage in developing useful resources for the MQTT protocol, in conjunction with the M2Mqtt project, a .NET client library for MQTT that supports .NET Framework, .NET Compact Framework and .NET Micro Framework.

How to use:

Install-Package GnatMQ_Broker -Version 1.2.0

Starting the server is simple:

using uPLibrary.Networking.M2Mqtt;

static void Main(string[] args)
{
    // create and start broker
    MqttBroker broker = new MqttBroker();
    broker.Start();
	//Once the broker is started, you applciaiton is free to do whatever it wants. 
    Console.ReadLine();
	
	///Stop broker
    broker.Stop();
}

The broker can also be embedded in an applicaiton, be that a cloud server, desktop app or even a UWP applicaiton.

Supported Platforms:

  • .Net Framework (up to 4.5)
  • .Net Compact Framework 3.5 & 3.9 (for Windows Embedded Compact 7 / 2013)
  • .Net Micro Framework 4.2 & 4.3
  • Mono (for Linux O.S.)
  • Windows 8.1
  • Windows Phone 8.1
  • Windows 10 (Through .Net Standard 2)
  • .Net Core (Through .Net Standard 2)

Features

Main features included in the current release:

  • All three Quality of Service (QoS) Levels (at most once, at least once, exactly once);
  • Clean session;
  • Retained messages;
  • Will message (QoS, topic and message);
  • Username/Password via a User Access Control;
  • Subscription to topics with wildcards;
  • Publish and subscribe handle using inflight queue;
  • Security connection with SSL/TLS;

Features not included in the current release:

  • Broker configuration using a simple config file;
  • Bridge configuration (broker to broker);
  • Sessions, retained and will messages persisted at broker shutdown (ex. database);

Contributing

Contributions are welcome. Please submit a PR against the Dev branch. Because the software supprots so many platforms, testing it is a little involved. Because GnatMQ supports .Net Compact Framework 3.9, building nuget packages requires VS2015 Pro or Enterprise and
Applicaiton Builder for Compact Framework, download here.

More Information

gnatmq's People

Contributors

dtflx01 avatar ppatierno avatar vladimirakopyan avatar gioviq avatar dennissc avatar marcelstoer avatar uhsl-marcus 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.