Terminal chat application written in Elixir using raw sockets (no frameworks).
- TCP — each client connects to the server and gets its own BEAM process
- UDP unicast — press
Uto send ASCII art to the server, which forwards it to all clients - UDP multicast — press
Mto send ASCII art directly to all peers via multicast group239.255.0.1:4568(no server involved)
To get the dependencies, run:
mix deps.getTo start the server, run:
iex -S mixTo start a client, run:
iex -r lib/client.ex -e "ChatApp.Client.start()"To run with livebook charts, run:
iex --name chat_app@127.0.0.1 --cookie mycookie -S mixThen, in livebook, connect to the node chat_app@127.0.0.1 with cookie mycookie and run:
Kino.Process.sup_tree(ChatApp.Supervisor)