utahplt / chorex

Choreographic programming in Elixir
https://hex.pm/packages/chorex
MIT License
14 stars 0 forks source link

Chatroom examples #9

Open bennn opened 3 weeks ago

bennn commented 3 weeks ago

Inspiration: https://www2.ccs.neu.edu/racket/pubs/cgjf-jfp20.pdf https://programming-journal.org/2024/8/8/ (artifact) https://zenodo.org/records/10003838

Outline:

User joins server, sends their name + room-to-join
Server confirms, sends back list of members
User sends private message
User receives private message

Todo

First-draft code, 1 User 1 Server

User.gen_id("tom") ~> Server.(new_id)
User.gen_room("chat1") ~> Server.(new_room)
Server.do_join() ~> User.(room_members) # use new_id + new_room to register the user and send list of members
User.gen_message() ~> Server.(new_msg) # send "hello world" or something
# Server propagates message to other users?
Server.gen_message() ~> User.(new_msg)