No description
Find a file
Víctor Martínez 45fd087ad2
Merge pull request #2 from williamdes/main
Some refreshments
2024-11-18 10:05:03 +01:00
src Update crates 2024-09-28 14:01:17 +02:00
.dockerignore Refresh Docker 2024-09-28 14:01:05 +02:00
.gitignore first commit 2021-03-06 21:26:56 +01:00
Cargo.lock Update crates 2024-09-28 14:01:17 +02:00
Cargo.toml Update crates 2024-09-28 14:01:17 +02:00
Dockerfile Refresh Docker 2024-09-28 14:01:05 +02:00
heroku.yml heroku deployment fix & release 2021-03-21 21:55:47 +01:00
README.md Update crates 2024-09-28 14:01:17 +02: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

Test with docker

docker build ./ -t actix-chat
docker run --rm -p 8080:8080 actix-chat

How to interact with the app

Connect

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

Ex: wss://rusty-messaging.herokuapp.com/

Please, connect over wss whenever you can since it is enabled on the server

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