Searching...
Sunday, November 11, 2018

Tortoise - Sebuah MQTT Client Elixir

Elixir memiliki beberapa MQTT client yang siap pakai, di antaranya adalah Tortoise dan Huulaki. Pada kesempatan kali ini, saya akan mencoba menggunakan Tortoise.

Persiapan
Berikut adalah prasyarat untuk mencoba Tortoise.
  1. Sebuah mqtt broker. Mqtt broker dapat diinstal di komputer atau menggunakan jasa MQTT broker di cloud, seperti cloudmqtt.com.
  2.  Pada komputer terinstal Erlang dan Elixir

Memulai Project
Untuk memulai project, ketikkan perintah berikut.

mix new mymqttclient

Tunggu sesaat, program mix akan membuat folder dan file project secara otomatis. Kemudian masuk ke folder mymqttclient.

cd mymqttclient

Buka file mix.exs untuk menambahkan modul tortoise.

defp deps do
[
    {:tortoise, "~> 0.9"}
]

Jalankan command berikut untuk mengunduh dan menginstal tortoise yang tadi sudah ditambahkan di file mix.exs.

mix deps.get
Lalu editlah file mymqttclient.ex di dalam folder lib
defmodule Mymqttclient do

def start do
    {ok, _pid} =
        Tortoise.Connection.start_link(
        client_id: MyClient,
        user_name: “myusername", password: “mypass",
        server: {Tortoise.Transport.Tcp, host: “mymqttserver.com", port: 17401},
        handler: {Tortoise.Handler.Logger, []},

    subscriptions: [{"test/elixir", 0}]
)
end

def pubit do
    Tortoise.publish(MyClient, "test/elixir", "hello")
    end
end

Lalu masuk ke terminal interaktif Elixir dengan mengetikkan command berikut.
iex -S mix

Setelah Elixir melakukan kompilasi, dan masuk ke terminal interaktif iex, jalankan command berikut.
iex(1)> Mymqttclient.start()

Jika semua berjalan dengan baik, akan muncul respon seperti berikut.
{:ok, #PID<0.194.0>}

iex(2)>
22:24:14.470 [info]  Initializing handler

22:24:14.471 [info]  Connection has been established

22:24:14.907 [info]  Subscribed to test/elixir

Untuk mem-publish pesan ke server MQTT, topik “test/elixir”, jalankan command berikut.

iex(3)> Mqttclient.pubit()

Karena MQTT client yang tadi kita jalankan men-subskripsi topik “test/elixir”, maka kita kan mendapatkan pesan sebagai berikut.

iex(4)>
22:24:23.488 [info]  test/elixir "hello"

Demikianlah penggunaan dasar MQTT client Tortoise.

0 comments:

Post a Comment

 
Back to top!