daadu
Yet another discussion on having native(some what) MQTT support with Phoenix
I am new to Phoenix (Erlang and Elixir ecosystem in general), I am from an IoT company which does all its stuff in MQTT [current stack is - EMQTT + Paho + Django + Celery + PostgreSQL], basically a broker where all devices are conencted - the backend subscribes to “root topic - #” to get all messages - the messages are handled by celery workers in background. These setup is not so cohorent as too many moving components. Phoenix looks a good setup to do such kind of things - only issue is that the devices uses MQTT (and we dont want to move to any other lib as this one is stable enough).
I went through various threads [thread 1 and thread 2] discussing native “transport layer” support for MQTT with Phoenix. Looks like there is no plan to add it to Phoenix and would require some overhaul (I might have misunderstood).
I have another idea of getting this done - with “MQTT over Websocket” support instead of “native MQTT” support. The lib we use on firmware end has this feature - wrapping MQTT packets with WS packets, not sure how it works exactly. But this would eliminate having a MQTT transport layer support and process the MQTT message later with some custom Plugs.
I am a noob when it comes to Phoenix (Just went through “Getting started in docs” and some YT videos), so forgive my ignorance. But I think this could be a relatively easier option to have MQTT support in Phoenix.
First Post!
kokolegorille
Hello and welcome,
You might be interested in Brodway, and MQTT connector…
https://github.com/kbredemeier/off_broadway_mqtt
You might build a similar pipeline with…
MQTT connector + Broadway + Phoenix + Task + PostgreSQL
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









