No description
Find a file
2021-03-22 00:19:33 +01:00
src get room uuid command 2021-03-22 00:19:33 +01:00
.gitignore first commit 2021-03-06 21:26:56 +01:00
Cargo.lock readme update 2021-03-21 22:45:33 +01:00
Cargo.toml readme update 2021-03-21 22:45:33 +01:00
Dockerfile origin changed 2021-03-21 20:42:10 +01:00
heroku.yml heroku deployment fix & release 2021-03-21 21:55:47 +01:00
README.md get room uuid command 2021-03-22 00:19:33 +01:00

Actix Chat rooms

Chat room application backend which allows you to create, join, leave chat rooms & send message to other anonymous users. Built using Actix Web, Actix & Actix WebSocket actors

Build

cargo build

Run

cargo run

How to interact with the app

Connect

First, you will need to connect to the app by web socket:

Ex: ws://localhost:<$PORT>

Send messages

To execute any operation you have to send a json which has the following format:

{
    "ty": "<type>",
    "data": "<message>"
}

Available operations

  • Create a room:

    {
        "ty": "Create",
        "data": ""
    }
    
    • Response:
      {
          "ty": "Info",
          "data": "<room-id>"
      }
      
  • Join a room:

    {
        "ty": "Join",
        "data": "<room-id>"
    }
    
    • Response:
      {
          "ty": "Info",
          "data": "Joined"
      }
      
  • Leave a room:

    {
        "ty": "Leave",
        "data": ""
    }
    
    • Response:
      {
          "ty": "Info",
          "data": "Room leaved"
      }
      
  • Send a msg to the room:

    {
        "ty": "Msg",
        "data": "Hello, World"
    }
    

Error responses

If an error occurs, the server will send back a json with the following format:

{
    "ty": "Err",
    "data": "<error-message>"
}

Todo List

  • Add a redis db to store messages & active rooms
  • Add TLS certificate