wss-chat

command module
v0.0.0-...-73a4df5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

README

wss-chat

Simple websocket chat backend (MVP)

Задача

ТЗ

Необходимо реализовать чат сервис на WSS:

  • Чат должен быть разделен на комнаты
  • Пользователь, при входе в комнату, видит сообщения за последние N минут
  • Участники комнаты видят, что зашел новый пользователь
  • Каждый участник чата может посмотреть общий список комнат
  • Каждый участник чата может заходить сразу в несколько комнат

Суть тестового задания - написать упрощенный Телеграмм. В чат можно пересылать любые текстовые сообщения. Загрузка файлов не требуется.

Результат
  • Чат разделен на комнаты. Участники чата, не получают уведомления о действия в другом чате
  • Пользователь, при подключении к комнате, видит сообщения за запрошенное количество времени
  • О подлючении нового пользователя сообщается всем участникам комнаты
  • По API доступен запрос для получения всех комнат
  • Любой пользователь имеет возможность подключения к нескольким комнатам
  • База задокументирована
  • API задокументировано
  • Приложение представляет собой минимально жизнеспособный продукт
    • база и приложение никак не сохраняют состояние
    • API минимально и реализует полный CRUDL

Documentation

Start server

depencies: docker

docker compose up

Usage

API

Examples for localhost:8080

  • Get rooms

    curl --location --request GET 'http://localhost:8080/rooms'
    
Chat usage
  1. Connect to chat

    • Connect ws://localhost:8080/ws?room=public, where public is room you want to connect
    • Default time for message history is 1 minute. But you can set it via form ws://localhost:8080/ws?room=public&time=1h (message history = 1 Hour)
  2. Send message: json with required fields(sender, payload)

    {
     "sender":"your_username",
     "payload":"test messasage!"
    }
    

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
db
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL