Mam serwer i wielu klientów (około 50 klientów), którzy łączą się z tym serwerem w oparciu o aplikację internetową, która oczywiście oparta jest na protokole HTTP, który z kolei używa protokołu TCP / IP (popraw mnie, jeśli się mylę, bo ja nie jestem naprawdę dobry w sieci).
Problem polega na tym, że powinienem opracować mechanizm ostrzegania, w którym gdy ktoś prześle formularz z niebezpiecznymi wartościami, menedżer (który jest również połączony za pośrednictwem tej samej aplikacji internetowej) powinien otrzymać na ekranie wyskakujące ostrzeżenie, prawie prawdziwe -czas (natychmiast).
Ponieważ jednak protokół HTTP jest bezstanowy, jestem trochę zdziwiony. Nie wiem jak to zaimplementować.
Jednym z rozwiązań może być użycie JavaScript wraz z setInterval()
funkcją do pobierania danych z serwera co sekundę. Ale wydaje mi się to trochę brudne i nieprofesjonalne.
Czy macie jakiś pomysł na wdrożenie innego rozwiązania?
źródło
Odpowiedzi:
Powinieneś użyć pewnego rodzaju aneksu push (patrz kometa ), aby powiadomić klientów. Może to wyeliminować potrzebę odpytywania, po prostu utrzymuje otwarte połączenie, którego można użyć do powiadamiania przeglądarki o zaistniałych zdarzeniach. Nie działa to jednak we wszystkich przeglądarkach. W takich przypadkach wracasz do „długiego odpytywania”.
źródło
Myślę, że właśnie z tego powodu stworzono WebSockets . Jeśli nie potrzebujesz zgodności ze starszymi przeglądarkami, możesz użyć tej opcji zamiast sondowania. Prawdopodobnie powinieneś użyć sondowania jako rezerwowego.
Nie jestem pewien, jak stabilna jest specyfikacja / implementacje w tych dniach (jeszcze niedawno nie była bardzo stabilna). Wygląda na to, że najnowsza specyfikacja została zaimplementowana w Firefox 6 i Chromium 14.
źródło