Witam.
Mam projekt w springu. Jest możliwość wysłania wiadomości do wybranego użytkownika za pomocą websocket. Chcę zrobić informowanie użytkownika o tym, że dostał nową wiadomość (tak jak jest np na facebook - pojawia się liczba na ikonce czatu).
Mam zrobione, że liczba wiadomości na ikonce zwiększa się o jeden jeżeli użytkownik dostanie nową wiadomość, ale zastanawiam się jak pobierać ilość nowych wiadomości na start po zalogowaniu.
Mój pomysł: Przy każdym refresh strony otwieram nowe połączenie websocket i zaraz po otwarciu połączenia mogę za pomocą websocketa odpytać sewer o ilość nowych wiadomości (pobierane z bazy)
Tylko w takim przypadku przy każdy przeładowaniu strony to jest dodatkowe odpytanie serwera (za pomocą websocket) o ilość nowych wiadomości. Za to mam pewność, że ilość nowych wiadomości jest zgodna z prawdą.
Myślałem też żeby pobrać przy logowaniu raz i trzymać w cookies, a przy każdej informacji o nowej wiadomości z websocket bym zwiększał w sesji wartość o 1. Tutaj jednak jest minus w przypadku gdy podczas reload strony ktoś wyśle wiadomość, a że websocket nie będzie jeszcze połączony to informacja o wiadomości przepadnie.
Czy jest lepsze rozwiązanie tego problemu niż pobieranie listy po każdym otwarciu połączenia websocket