jonasbhjulstad
Hi!
I’m trying to simulate a network locally, by spawning nodes on different ports. The nodes find each other through udp-broadcasts
def listen socket, port do
local_msg = to_string(port)
receive do
{:udp, _socket, _address, port, ^local_msg} ->
IO.inspect port
IO.puts "localmsg"
listen socket, port
{:udp, _socket, address, remote_port, _msg} ->
string_address = ip_to_string(address)
IO.puts "new node added at port: #{port}"
#"OrderHandler_" <> to_string(remote_port) <> "@" <> string_address |> String.to_atom |> Node.ping
#localhost-version
"OrderHandler_" <> to_string(remote_port) <> "@localhost" |> String.to_atom |> Node.ping
end
end
The node-ids follows this format: OrderHandler_@10.0.0.68
However, when I convert the string to atom, I get :“OrderHandler_@10.0.0.68”, which does not match with the nodes atom :OrderHandler_@10.0.0.68.
How do I solve this?
Also when using
Node.start :nodename@localhost
It responds with localhost being an illegal name. Are there any solutions to this?
Trending in Questions
Hey guys,
I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly
Do you guys have any suggestions what is the best prac...
New
Hello!
Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app.
I creat...
New
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
Hello,
I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter).
The diffic...
New
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
Anyone here using Honeybadger?
My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of
Bandit.HTTPError...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
Other Trending Topics
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
There are three potential reasons for members of this forum to have a look at https://vutuv.de
You are tired or annoyed of LinkedIn.
Yo...
New
Aludel - LLM Evaluation Workbench
Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New
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
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixir-ls
- #ai
- #elixirconf-us
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 4- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
tiagodavi
Well. I don’t know whether I understood it correctly, but I can suggest you create a list of valid atoms and then get an atom from that list instead of converting to string and vice-versa.
Does that make sense?
lucaong
If you are thinking that the extra double quotes in
:"OrderHandler_@10.0.0.68"cause it to fail the match, that’s not the problem. The double quotes are just the way the atom is printed: atom literals have to use quotes when they contain something else than unicode letters, numbers, underscores, and a few other permitted characters.Since the atom in your example contains dots, the atom literal is printed with quotes (
:OrderHandler_@10.0.0.69is not a valid atom literal). The quotes are not part of the atom though, in fact:foo == :"foo", so that is not the reason for your problem.The reason why the atom does not match is something else, not evident from the code you posted.
Also, not sure if that was your intention, but
Node.start/3does not “spawn a node”. It turns the current node from non-distributed to distributed and dynamically gives it a name. You very rarely need to call this function. Usually, you would start your nodes from the command line, specifying their name with--nameor--sname.jonasbhjulstad
Thanks for the reply, this actually solved the fully-qualified hostname problem
jonasbhjulstad
Thanks, that clarifies some things, I though that Node.start would spawn a new node, but that must mean I’ve only converted my current node to be distributed using three different names.
I was able to solve the issue by initializing three iex-interfaces using a batch-script:
And some simple cmd-commands. Startup:
Shutdown:
This feels like a nasty way of controlling my nodes for testing, but it floats my boat.