Dynamiczna zmiana statusu online

Dynamiczna zmiana statusu online
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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ć ?

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9016
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

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: 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.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 42
0

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

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9016
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: dni
  • Ostatnio: dni
  • Postów: 42
0

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

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9016
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: dni
  • Ostatnio: dni
  • 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.