Giter Club home page Giter Club logo

vertx-mqtt-broker-mod's Introduction

vertx-mqtt-broker-mod

MQTT broker implementation as Vert.x module.

Credits:
Moquette https://github.com/andsel/moquette for coder and decoder implementation of MQTT messages.

Quick Start

Requires Vert.x 3.0.0 and Maven 3+

git clone https://github.com/giovibal/vertx-mqtt-broker-mod.git
cd vertx-mqtt-broker-mod
mvn clean install

use vertx command to start the service ...

vertx run maven:io.github.giovibal.mqtt:vertx-mqtt-broker-mod:2.0-SNAPSHOT::mqtt-broker -conf config.json
vertx run maven:io.github.giovibal.mqtt:vertx-mqtt-broker-mod:2.0-SNAPSHOT::mqtt-broker -Dvertx.metrics.options.jmxEnabled=true -conf config.json

vertx run io.github.giovibal.mqtt.MQTTBroker -cp target/vertx-mqtt-broker-mod-2.0-SNAPSHOT-fat.jar -conf conf.json

or uber jar ...

java -jar target/vertx-mqtt-broker-mod-2.0-SNAPSHOT-fat.jar -conf config.json
java -Dvertx.metrics.options.jmxEnabled=true -jar target/vertx-mqtt-broker-mod-2.0-SNAPSHOT-fat.jar -conf config.json

cluster ...

vertx run maven:io.github.giovibal.mqtt:vertx-mqtt-broker-mod:2.0-SNAPSHOT::mqtt-broker -conf config.json -cluster -cluster-host <IP>
vertx run io.github.giovibal.mqtt.MQTTBroker -cp target/vertx-mqtt-broker-mod-2.0-SNAPSHOT-fat.jar -conf config1.json -cluster -cluster-host <IP>

Features

  • Suport both QoS 0, 1 and 2 messages
  • Persistence and session management (cleanSession=false)
  • Multi-tenancy: isolation of topics and storage, just use username@tenant as username
  • MQTT over WebSocket
  • Retain flag
  • Oauth2 authentication integrated with WSO2 Identity Server
  • TLS support over TCP and Websocket
  • Multiple endpoint configuration in the same broker instance

Work in progress

  • Refactoring, new architecture
  • Clustering and Hign Availability

Roadmap

  • Pluggable persistence
  • Implement some out-of-the-box persistence managers: RAM, Cassandra, HBase, MongoDB
  • Implement will message support

vertx-mqtt-broker-mod's People

Contributors

giovibal avatar

Watchers

 avatar  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.