Dlaczego Twój sklep e-commerce traci przez złe wykorzystanie WebSocketów?
Gdy klient dodaje produkt do koszyka, a system informuje go o dostępności dopiero po odświeżeniu strony – to nie jest tylko drobny dyskomfort. To realna utrata sprzedaży. W 2025 roku użytkownicy oczekują natychmiastowej reakcji, a opóźnienia mierzone w sekundach przekładają się na porzucone koszyki i spadek zaufania. Jednym z głównych winowajców jest złe (lub żadne) wykorzystanie WebSocketów.
WebSockets to protokół komunikacji dwukierunkowej w czasie rzeczywistym. W e-commerce pozwalają na błyskawiczne aktualizacje stanu magazynowego, zmianę cen, powiadomienia o promocjach czy synchronizację koszyka między urządzeniami. Brzmi świetnie, prawda? Problem w tym, że wiele firm implementuje je źle – albo w ogóle ich nie używa, zastępując je archaicznymi technikami.
1. Zamiast WebSocketów: ciągłe polling HTTP
Większość starszych aplikacji e-commerce (zwłaszcza tych opartych na WordPressie lub WooCommerce) opiera się na polling HTTP. Co kilka sekund frontend wysyła zapytanie do serwera: „Czy coś się zmieniło?”. Serwer odpowiada: „Nie” lub „Tak”. To działa, ale kosztem.
Koszt wydajnościowy: Każde zapytanie to overhead – nagłówki HTTP, przetwarzanie po stronie serwera, odpowiedź. Przy 1000 użytkowników odświeżających co 5 sekund generujecie 12 000 zapytań na minutę. Nawet jeśli odpowiedź jest pusta, serwer musi ją obsłużyć. To prosta droga do przeciążenia i wyższych kosztów hostingu.
Koszt UX: Opóźnienie między zdarzeniem a aktualizacją wynosi średnio połowę interwału pollingu. Jeśli polling robicie co 10 sekund, użytkownik czeka średnio 5 sekund na informację. W praktyce: klient widzi produkt jako dostępny, ale po dodaniu do koszyka okazuje się, że już go nie ma. Złość, frustracja, porzucenie sklepu.
Case: Pracowałem z klientem z branży mody, który miał polling co 3 sekundy. Serwer ledwo dychał, a i tak użytkownicy zgłaszali, że towar znika podczas składania zamówienia. Po migracji na WebSockets opóźnienie spadło do <100ms, a serwer odetchnął. Koszty infrastruktury zmniejszyły się o 40%.
2. WebSockets zaimplementowane na siłę – bez skalowania
Drugi błąd to implementacja WebSocketów bez przygotowania na skalowanie. WebSocket utrzymuje stałe połączenie między przeglądarką a serwerem. W architekturze jednego serwera to działa. Ale gdy potrzebujesz horyzontalnie skalować aplikację (więcej serwerów), pojawia się problem: połączenie WebSocket jest związane z konkretnym serwerem. Jeśli klient trafi na serwer A, a zmiana (np. aktualizacja ceny) zostanie wysłana na serwer B – klient jej nie otrzyma.
Rozwiązanie: Potrzebujesz brokerów wiadomości (np. Redis Pub/Sub) lub zarządzanych usług WebSocket (np. AWS API Gateway WebSockets, Socket.IO z adapterami). Bez tego Twój system będzie działał tylko na małą skalę.
Przykład z rynku: Znany polski sklep z elektroniką podczas Black Friday padł na 30 minut, bo WebSockets zamiast odciążyć serwer, przeciążyły go – każde odświeżenie ceny wysyłało zapytanie do bazy danych przez WebSocket, zamiast korzystać z cache. Efekt? Strona przestała odpowiadać. Gdyby użyli WebSocketów tylko do powiadomień, a dane pobierali z szybkiego cache’a, problem by nie wystąpił.
3. WebSockets tylko do „bycia na czasie” – zapomniane przypadki użycia
Większość firm używa WebSocketów wyłącznie do powiadomień „na żywo” – ktoś kupił, ktoś dodał opinię. Tymczasem prawdziwa wartość leży w:
- Współdzielenie koszyka między urządzeniami: Klient przegląda ofertę na telefonie, dodaje produkty, a potem wraca na komputerze i kontynuuje bez ręcznego odświeżania. Dzięki WebSocketom koszyk synchronizuje się w czasie rzeczywistym.
- Aukcje i ograniczone czasowo oferty: Ceny zmieniają się na oczach użytkownika, bez przeładowania strony. To buduje zaangażowanie i poczucie pilności.
- Współpraca w zespole zakupowym (B2B): Kilku pracowników tej samej firmy może dodawać produkty do wspólnego zamówienia, widząc zmiany na bieżąco.
Zaniedbany obszar: Wiele sklepów B2B ma problem z synchronizacją koszyków między użytkownikami. Klient dodaje produkt, jego kolega nie widzi zmiany, podwajają zamówienie – potem zwroty i reklamacje. WebSockets rozwiązują to błyskawicznie.
4. Bezpieczeństwo WebSocketów – często bagatelizowane
WebSockets to także wektor ataku. Jeśli nie walidujesz danych przychodzących przez WebSocket, możesz narazić się na ataki typu WebSocket Injection czy Cross-Site WebSocket Hijacking. Wiele implementacji pomija autoryzację przy nawiązywaniu połączenia, zakładając, że skoro to „ten sam użytkownik”, to wszystko gra. Błąd.
Standardy: Używaj HTTPS dla połączenia wstępnego (WebSocket upgrade), tokenów autoryzacyjnych (JWT) w query stringu lub nagłówkach, waliduj każde przychodzące zdarzenie. Nie ufaj klientowi. Jeśli przesyłasz przez WebSocket dane wrażliwe (np. numery kart kredytowych – czego nie powinieneś robić!), szyfruj je.
5. Alternatywy, gdy WebSockets są overkill
Nie każdy sklep potrzebuje komunikacji w czasie rzeczywistym. Jeśli Twój e-commerce ma mały ruch (kilkadziesiąt równoczesnych użytkowników), prosty polling co 30 sekund może być tańszy i prostszy w utrzymaniu. WebSockets wiążą się z wyższym kosztem początkowym (rozwój, utrzymanie stałych połączeń na serwerze).
Kiedy warto: Gdy masz ponad 500 aktywnych użytkowników w tym samym czasie, gdy sprzedajesz produkty o dynamicznej dostępności (np. bilety, towary limitowane), gdy prowadzisz aukcje lub oferty flash.
Kiedy nie warto: Przy małym sklepie z kilkoma produktami i ruchem poniżej 100 użytkowników na godzinę. Wtedy lepiej postawić na prostotę.
Podsumowanie
WebSockets to potężne narzędzie, ale jak każde potężne narzędzie – może siać spustoszenie, gdy użyjesz go bez zrozumienia. Jeśli Twój sklep e-commerce boryka się z opóźnieniami, przeciążeniami serwera lub słabym UX w aktualizacjach czasu rzeczywistego, być może nadszedł czas, by przyjrzeć się swojej strategii WebSocket.
Co możesz zrobić już teraz?
- Zdiagnozuj, czy Twój sklep używa pollingu tam, gdzie mógłby użyć WebSocketów.
- Sprawdź, czy WebSockets są poprawnie skalowane (broker wiadomości, Redis).
- Zabezpiecz połączenia – autoryzacja, walidacja.
- Zastanów się, czy w ogóle potrzebujesz real-time – może lepiej zostać przy prostszym rozwiązaniu?
Potrzebujesz pomocy w audycie technicznym swojego sklepu? JurskiTech specjalizuje się w optymalizacji e-commerce – od wydajności po UX. Skontaktuj się z nami, a przeanalizujemy Twój stack i zaproponujemy konkretne ulepszenia.


