Opis projektu
PrzetłumaczoneTechnicznie oczekujemy transportu WebSocket dla dostarczania na żywo z rozsądną opcją awaryjną i automatycznym ponownym połączeniem w przypadku utraty połączenia. Wiadomości muszą być przechowywane w bazie danych, aby historia czatu ładowała się poprawnie po ponownym otwarciu rozmowy, a dostarczanie powinno być uporządkowane i deduplikowane nawet w niestabilnych sieciach. Potrzebujemy wskaźnika pisania, statusów 'dostarczono' i 'przeczytano' dla każdej wiadomości, liczników nieprzeczytanych wiadomości na czacie oraz obecności (online, ostatnio widziany). Załączniki są ważne: użytkownicy powinni mieć możliwość wysyłania obrazów i dokumentów z podglądami i bezpiecznymi limitami rozmiaru. Gdy odbiorca jest offline lub karta jest zamknięta, powiadomienie push informuje go o nowej wiadomości. Backend powinien opierać się na naszych aktualnych kontach użytkowników i uprawnieniach dostępu, zamiast wprowadzać osobny system autoryzacji.
Uważamy, że bezpieczeństwo i zapobieganie nadużyciom są częścią zadania: uwierzytelnione połączenia socketowe powiązane z aktywnymi sesjami, kontrole uprawnień (użytkownik odczytuje tylko wątki, w których uczestniczy), sanitizacja wejścia przeciwko XSS podczas wyświetlania wiadomości oraz podstawowe ograniczenia tempa przeciwko spamowi. Oczekujemy czystego, udokumentowanego kodu w naszym aktualnym stosie, krótkich instrukcji integracyjnych i testów dla głównych scenariuszy.
— Prywatne i grupowe czaty z zarządzaniem uczestnikami
— Dostarczanie WebSocket z ponownym połączeniem i opcją offline
— Wskaźnik pisania, statusy dostarczenia/przeczytania, liczniki nieprzeczytanych, obecność
— Załączniki obrazów i dokumentów z podglądami i limitami rozmiaru
— Powiadomienia push dla odbiorców offline
— Historia, porządkowanie, deduplikacja i trwałość wiadomości
— Gniazda powiązane z sesjami, kontrole uprawnień per wątek, ochrona przed XSS, ograniczenie tempa