Publication date:
10/28/24
Soketi jako darmowa alternatywa dla Pusher'a
Jak uruchomić Soketi jako darmową alternatywę dla Pusher'a?
Jeśli szukasz wydajnego i darmowego rozwiązania WebSocket dla swojej aplikacji, Soketi może być idealną alternatywą dla płatnego Pushera. Soketi to open-source’owy serwer WebSocket w pełni kompatybilny z API Pushera, co pozwala na łatwe przejście i uniknięcie wysokich kosztów. W tym artykule pokażemy ci jak skonfigurować Soketi z Docker Compose. Zakładam, że masz już skonfigurowane reverse proxy z obsługą SSL (np. Nginx z automatycznym odnawianiem certyfikatów SSL przez Let’s Encrypt).
Dlaczego warto wybrać Soketi?
Soketi jest zaprojektowany jako lekka alternatywa dla Pushera, a jego kluczowe zalety to:
Open-source: Pełna kontrola nad środowiskiem i brak opłat licencyjnych.
Zgodność z API Pushera: Minimalne zmiany w aplikacji podczas migracji.
Skalowalność: Możliwość obsługi dużego ruchu dzięki pracy w klastrach.
Wymagania wstępne
Przed przystąpieniem do konfiguracji upewnij się, że masz:
Docker i Docker Compose,
Reverse proxy z certyfikatem SSL skonfigurowanym pod Twój domenowy adres.
Tworzymy plik .env
Dodaj plik .env do katalogu projektu, aby łatwiej zarządzać zmiennymi środowiskowymi, takimi jak domena projektu i klucze aplikacji:
Konfiguracja pliku Docker Compose
Poniżej znajduje się konfiguracja docker-compose.yml, która uruchomi Soketi oraz dostosuje środowisko do pracy z reverse proxy:
Wyjaśnienie konfiguracji
Zmienne środowiskowe: Używamy ${APP_ID}, ${APP_KEY}, ${APP_SECRET} oraz ${PROJECT_DOMAIN}, aby dynamicznie dostosować konfigurację do Twojego projektu.
Porty: Soketi będzie nasłuchiwać na porcie 6001, co jest zgodne ze standardową konfiguracją dla serwerów WebSocket.
Reverse Proxy: Dzięki obecnym w konfiguracji zmiennym środowiskowym (VIRTUAL_HOST i LETSENCRYPT_HOST) połączenia do Twojej aplikacji będą zabezpieczone przez certyfikaty SSL i przekierowywane przez reverse proxy.
Konfiguracja aplikacji z Soketi
Soketi jest w pełni zgodny z API Pushera, więc wystarczy, że zmienisz ustawienia klienta Pushera, np. w JavaScript:
Powyższa konfiguracja powinna zapewnić, że Twoja aplikacja działa dokładnie tak, jak wcześniej z Pusherem, ale bez dodatkowych kosztów.
Uruchomienie środowiska
Aby uruchomić Soketi, wykonaj w terminalu:
Komenda uruchomi usługę w tle, a aplikacja zacznie nasłuchiwać na odpowiednich portach, gotowa do obsługi połączeń WebSocket.