• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

W jaki sposób coś takiego może być zrobione?

42 Warsaw Coding Academy
+1 głos
560 wizyt
pytanie zadane 5 kwietnia 2022 w JavaScript przez CdxProj Użytkownik (910 p.)

Hej. Mam takie pytanko, w jaki sposób może być zrobione coś w stylu tego co możemy zobaczyć na chacie na twitchu? Konkretnie chodzi mi o to, że przy każdej wiadomości użytkownika widnieją ikony (tzw. odznaki) które pokazują czy ktoś jest modem na kanale, lub czy jest subskrybentem danego kanału itd. Jak się uzyskuje taki efekt? Bo wiadomo że informacje o takim stanie rzeczy muszą być przechowywane w jakiejś bazie danych, ale nie chce mi się wierzyć że aplikacja za każdym razem gdy jakiś użytkownik napisze wiadomość na chacie strzela do bazy danych z zapytaniem jakie odznaki powinna przydzielić danemu użytkownikowi. Takich wiadomości wysyłanych są zapewne tysiące na sekundę (biorąc pod uwagę całą platformę twitch) więc jak coś takiego można rozwiązać?

 

(tutaj np. widzimy ikonkę weryfikacji oraz moderatora na kanale)

2 odpowiedzi

0 głosów
odpowiedź 6 kwietnia 2022 przez Comandeer Guru (607,060 p.)
Najprostszy sposób: dołączenie do wiadomości pełnych informacji o użytkowniku. Zresztą czaty mają też przecież listę obecnych użytkowników, więc te informacje mogą pochodzić stamtąd.
0 głosów
odpowiedź 6 kwietnia 2022 przez VBService Ekspert (256,600 p.)

Bardzo prawdopodobne jest to, że w momencie logowania się użytkownika na chat-cie (zapytanie do bazy danych), takie informacje są przechowywane np. w zmiennych sesyjnych, których wielkość łączna nie przekroczy nawet 1 kB (na jednego zalogowanego użytkownika), nawet przy zalogowanych kilku tysiącach użytkowników dla nowoczesnych serwerów wyposażonych w kilkanaście GB ram-u nie stanowi to już wielkiego wyzwania. 

komentarz 6 kwietnia 2022 przez CdxProj Użytkownik (910 p.)
Okej, ale może zajść taka sytuacja że ktoś pisze daną wiadomość na chacie, po minucie pisze drugą i przy tej pierwszej miał ikony obok nicku, a przy drugiej nie i wcale to "zabranie" mu rang nie wymagało jego wylogowania. Jak coś takiego można wytłumaczyć?
2
komentarz 6 kwietnia 2022 przez JakSky Stary wyjadacz (14,770 p.)
Czat używa prawdopodobnie połączenia WebSocket lub czegoś podobnego. Więc raczej dane są przechowywane po stronie serwera w ramach sesji, dane mogą się zmieniać w trakcie połączenia.

Jako, iż dane mogą się zmienić w trakcie działania programu, musisz opracować system zdarzeń, który będzie to obsługiwał.

Takie duże serwisy jak Twitch mogą mieć całą architekturę opartą na zdarzeniach, więc tym łatwiej dla nich :)

Podobne pytania

0 głosów
1 odpowiedź 166 wizyt
0 głosów
1 odpowiedź 288 wizyt
pytanie zadane 5 kwietnia 2017 w Algorytmy przez ArturoS159 Początkujący (440 p.)

93,383 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,744 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...