kmiecikt / simple_mqtt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SimpleMqtt

A basic, single node pub-sub implementation where publishers and subscribers use topics and topics filters compatible with MQTT.

It cannot replace a real MQTT broker, but can be used in a simple IoT device, with multiple local sensors and actuators that have to communicate with each other.

Installation

If available in Hex, the package can be installed by adding simple_mqtt to your list of dependencies in mix.exs:

def deps do
  [
    {:simple_mqtt, "~> 0.1.0"}
  ]
end

Usage

In the following example, the current process:

  • Starts a SimpleMqtt server.
  • Subscribes to two topic filters.
  • Publishes a message that matches one of the filters.
  • Receives notification.
  • Unsubscribes from the server.
iex> {:ok, pid} = SimpleMqtt.start_link()
{:ok, #PID<0.201.0>}

iex> :ok = SimpleMqtt.subscribe(pid, ["things/sensor_1/+", "things/sensor_2/+"])
:ok

iex> :ok = SimpleMqtt.publish(pid, "things/sensor_1/on", "true")
:ok

iex> flush
{:simple_mqtt, "things/sensor_1/on", "true"}

iex> :ok = SimpleMqtt.unsubscribe(pid, :all)
:ok

API documentation

The ExDoc documentation can be found at https://hexdocs.pm/simple_mqtt.

About

License:Apache License 2.0


Languages

Language:Elixir 100.0%