• 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?

Object Storage Arubacloud
+1 głos
315 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 (601,590 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 (253,420 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ź 116 wizyt
0 głosów
1 odpowiedź 234 wizyt
pytanie zadane 5 kwietnia 2017 w Algorytmy przez ArturoS159 Początkujący (440 p.)

92,582 zapytań

141,433 odpowiedzi

319,666 komentarzy

61,966 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...