Dynamiczna zmiana statusu online

Dynamiczna zmiana statusu online
K1
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:42
0

Hej, mam funkcje która sprawdza czy użytkownik jest zalogowany lub nie. Poradzi ktoś, aby była wywoływana przy zmianie statusu tego usera ? Mam listę użytkowników na stronie i jak się user wyloguje to chce, aby funkcja się wywołała w celu zmiany statusu. Jak to mogę zrobić ?

edytowany 1x, ostatnio: cerrato
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:26 minut
  • Lokalizacja:Poznań
  • Postów:8796
0

Daj może więcej konkretów, pokaż funkcję o której piszesz, wyjaśnij co oznacza "zmiana statusu przez usera", czy piszesz to w oparciu o jakiś framework/bibliotekę, czy w czystym JS + jQuery?

Bo na razie to możesz jedynie dostać odpowiedź w stylu Zrób tak, żeby funkcja się wywoływała w odpowiednich momentach czyli np. podczas wylogowania. Nawet nie wiemy, jak u Ciebie to wylogowywanie wygląda :P


edytowany 1x, ostatnio: cerrato
K1
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:42
0

Moja funkcja:https://pastebin.com/XgEEt3Yb

Jest JS +Jquery i ajax

No chodzi mi o to ze jak patrze na liste userow i jeden z nich sie wyloguje to automatycznie bez przeladowania strony kropka z online powinna sie zmienic na offline.

MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:3 dni
  • Postów:644
1

Zrobienie tego za pomocą AJAX nie jest optymalne, poczytaj o WebSocket. Wtedy serwer sam powiadomi klienta jak któryś z użytkowników się wyloguje. Jak chcesz to zrobić w AJAX to musisz po prostu odpytywać co chwilę serwer o zmiany statusów, albo pobierać wszystkie statusy.

edytowany 2x, ostatnio: Markuz
K1
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:42
0

Moja wiedze jest zbyt uboga, aby użyc WebSocketa. Jak by to zrobić Ajaxem ?

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:26 minut
  • Lokalizacja:Poznań
  • Postów:8796
0

No to jak napisał @Markuz - musisz cyklicznie odpytywać serwer. Ustaw sobie timer co jakiś czas - kilka/naście/dziesiąt sekund i sprawdzaj, czy coś się zmieniło.

W zależności od ilości userów, możesz albo pobierać tylko zmiany, albo po prostu całą aktualną listę.


K1
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:42
0

Czy jak będzie zalogowanych np 1000 użytkowników to bardzo będzie obciążać serwer ?

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:26 minut
  • Lokalizacja:Poznań
  • Postów:8796
0

No to może być problem, odpytywanie co chwila serwera o setki/tysiące użytkowników, zwłaszcza jeśli chcesz mieć swoją aplikację/stronę jednocześnie otwartą w wielu miejscach. Dlatego znacznie lepszą opcją jest to, co wcześniej sugerował @Markuz, czyli odwrócenie sposobu komunikacji. Nie strona odpytuje w kółko serwer, ale serwer powiadamia stronę o zmianach w chwili, w której one mają miejsce.


K1
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:42
0

Okej dziekuje za pomoc ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.