Mam aplikację Node.js, która jest przeznaczona wyłącznie do nasłuchiwania i emitowania gniazd sieciowych. Mój stos jest aktualny. Korzystam z czystej konfiguracji serwera klienta Socket.io z tej strony:
Odkryłem, że raz na jakiś czas to zajmuje15–25 sekund, aby uzyskać odpowiedź z serwera węzła js. Zwykle zajmuje to do 5 ms, ale co każde 20, 30 lub 40 połączeń zajmuje do 25 sekund. Przekonałem się, kiedy wysyłam wiadomość do serwera, otrzymuję odpowiedź i obliczam czas spędzony na tym transakcja (jak większość aplikacji do testów porównawczych). Próbowałem innej konfiguracji, metody transportu itp. I jest tak samo.
Pracuję na Apache / 2.2.14. Przygotowałem szybko podobny test dla Sock.js, a czas odpowiedzi nigdy nie przekracza 5 ms.
Czy ktoś miał ten sam problem? Co może być przyczyną? Wiem, że mogę po prostu używać Sock.js, ale chodzi o to, że duża aplikacja jest już gotowa na Socket.io i trudno byłoby ją przepisać, aby użyć innego pakietu gniazd.
Twoje zdrowie.
Odpowiedzi:
2 dla odpowiedzi № 1Po kilku godzinach debugowania znalazłemproblem, który jest ... Kaspersky antywirusowy na moim komputerze lokalnym. Skonfigurowałem gniazdo serwera na porcie 8080. Kaspersky nie blokuje websockets, ale skanuje ten port. A odpowiedź 1 na 20 gniazd zajmuje 20 sekund. Rozwiązanie: zmiana portu na coś, co nie jest skanowane przez programy antywirusowe (nie jasne, ale 3000 lub 843 powinno załatwić sprawę).