Dodaj rozszerzalny panel softphone do czatu
- Dodaj przycisk ikony PhoneInTalk do nagłówka czatu dla softphone toggle - Twórz kompleksowy komponent SoftphonePanel z pełnym interfejsem użytkownika - Wdroże...
Usuń podłączoną kontrolę i dodaj rejestrowanie debugowania dla aktywacji STOMP
Klient STOMP nie aktywował się, ponieważ kontrola podłączona temu zapobiegała. Dodano dzienniki debugowania do diagnozowania.
Aktywuj klienta STOMP tylko po otwarciu SockJS
Krytyczna poprawka błędu: Klient STOMP był aktywowany przed otwarciem SockJS, powodując natychmiastowe rozłączenie. Teraz czeka na SockJS na otwartym wydarzeniu...
Włącz transporty zwrotne SockJS dla połączenia WebSocket
Zezwalaj na strumieniowanie xhr i xhr-poling jako upadek, jeśli aktualizacja WebSocket nie powiedzie się.
Ulepsz czatBox z dynamicznym systemem kolorów i zwiększoną wysokością
- Zwiększ obszar wyświetlania wiadomości o 33% (DOCKED_HEIGHT: 360 -> 480) - Utwórz ChatBoxStyles.tsx z dynamicznym systemem kolorów opartym na zmienności CSS -...
Modernizuj projekt ChatBox z profesjonalnym lakierem
- Zaimplementuj czyste białe tło z subtelnymi grastymi gradientami - Dodaj niestandardową stylizację paska przewijania zintegrowaną z podstawowym schematem kolo...
Usuń nieprawidłowe 'aktywne' wanny w użyciuChatWebSocket
Typ Klienta typu z ?stomp/stompjs nie ma "aktywnej" właściwości. Usunięto nieprawidłowy czek, ponieważ client.activate() jest wywołany natychmiast po stworzeniu...
Poczekaj, aż SockJS otworzy się przed aktywacją klienta STOMP
- Napraw stan wyścigu, w którym klient STOMP aktywował się przed gotowością połączenia SockJS - Przenieś client.activate() do SockJS na open callback - Powinno ...
Dodaj STOMP debugowanie wycinki debugowania w celu zdiagnozowania problemu połączenia
Trasa ALL WebRTC API żądań do portu 8443
- Zaktualizowano wszystkie trasy API WebRTC do korzystania z multimediów. - Nie używać już Traefik dla punktów końcowych WebRTC - Dopasowuje media API i Konfigu...
Trasa WSZYSTKIE MediaUS żądania do portu 8443 (byja Traefik)
- Zaktualizowano wszystkie medialne trasy API do korzystania z multimediów.-domena:8443 - Nie używać już Traefik dla MediaService - Zarówno API, jak i WebSocket...
Podłącz do portu 8443 (zewnętrznego), który kieruje się do NodePort 30843
- Router do przodu zewnętrzny 8443 do k1m1 NodePort 30843 - Przeglądarka używa media.kamorm.com:8443 - Węzeł wewnętrzny to 30843 (Kubernetes valid range)
Podłączać do portu MediaService 8443 dla WebSocket
- Zaktualizowano połączenie WebSocket do korzystania z media.kamorm.com:8443 - Bypasses Traefik dla ruchu tylko dla WebSocket - Wykorzystuje bezpośrednie połącz...
Usuwanie ograniczenia transportu tylko WebSocket dla zgodności HTTP / 2
- Przeglądarka WebSocket API nie obsługuje HTTP / 2 (RFC 8441 nie zaimplementowany) - Native WebSocket wymaga aktualizacji HTTP/1.1, która nie przejdzie przez H...
Użyj transportu tylko WebSocket (wyjmowanie XHR)
- Zmienione transporty SockJS z [websocket, xhr-streaming, xhr-poling] na [websocket] - Usuwa upadek do XHR sondaży - Zmądł do czystego połączenia WebSocket - S...
Połącz WebSocket bezpośrednio z media.kamocrmmm.com
- Powrócony do oryginalnego podejścia: podłączenie do mediów. - Usunięto niepotrzebną złożoność tego samego pochodzenia - Removed /ws obejście z średniego oprog...
Usuwanie wyraźnego odniesienia do przestrzeni nazw z kamowsmedia-service
- Obie usługi są w tej samej przestrzeni nazw (kamo) - Wyraźne odniesienie do nazwy nie jest potrzebne - Unika potencjalnych problemów międzynazowych
Usuń /wswsprzepis z next.config (ręczna przez Traefik)
- Usunięto Next.js przepisanie ścieżek /ws - WebSocket routing teraz obsługiwany na poziomie Traefik IngressRoute - Traefik trasy internal.kamocrm.com/ws -> Med...
Trasy /ws Żądania bezpośrednio do MediaService przez Traefik
- Dodano dedykowaną trasę dla ścieżek /ws w IngressRoute - Trasy wewnętrzne.kamorm.com/ws -> MediaService bezpośrednio - Używa tych samych serwerówTransport jak...
Zezwala /w WebSocket punkty końcowe bez przekierowania auth
- Dodano /w ścieżkę do obejścia średniej - SockJS musi połączyć się z /ws/info bez przekierowania - Połączenia WebSocket nadal będą miały plik cookie - Naprawio...
Zmień połączenie WebSocket z tym samym oryginalnym
- Zmieniono z media.kamorm.com na to samo pochodzenie (internal.kamorm.com) - Unika się krzyżowych problemów z połączeniem WebSocket - Dodano regułę Next.js nap...
Dodaj trasy proxy API dla punktów końcowych WebRTC
- Dodano /api/webrtc/config proxy do MediaService - Dodano /api/webrtc/token proxy dla uwierzytelnienia Janus - Dodano /api/webrtc/call/initiate, odpowiedź, koń...
Usuń nieprawidłowy właściwość kodera z getDisplayMedia
- Korzystanie z prostego wideo: true dla udostępniania ekranu - Budowanie powinno teraz odnieść sukces
Rozwiązować błąd build - zastąpić PhoneOff CallEnd
- Ikona PhoneOff nie istnieje w .mui/i-icons-material - Korzystanie z CallEnd, która jest poprawną ikoną MUI - Usunięto nieużywane pliki duplikaty (ChatBoxWithW...
Kompletne połączenia peer-to-peer WebRTC z sygnalizacją
- Dodano użycie Haku WebBRTC z pełną obsługą sygnalizacji - Zintegrowana sygnalizacja WebSocket (oferty, odpowiedzi, kandydaci ICE) - Dodano powiadomienia o poł...
Dodaj integrację Janus WebRTC do połączeń audio/wideo
- Dodano użycie JackanusWebRTC hook do zarządzania połączeniami WebRTC - Dodano komponent VideoCallPanel do wyświetlania wideo w języku - Zintegrowany z ChatBox...
Przywracanie transportu WebSocket w SockJS
- Powrósł do korzystania z transportu websocket (nie zapylania) - WebSockets są standardem i powinny działać poprawnie - Skoncentruj się na naprawieniu rzeczywi...
Pomiń transport WebSocket w SockJS, aby uniknąć problemów HTTP / 2
- Używaj xhr-streaming i xhr-pollinga zamiast websocket - Te transporty działają zarówno z HTTP/1.1, jak i HTTP/2 bez konieczności aktualizacji WebSocket - Unik...
Skonfiguruj transporty SockJS do obsługi problemów z aktualizacją HTTP/2 WebSocket
- Wyraźnie skonfigurować zamówienie transportowe SockJS, aby preferować WebSocket, a następnie z powrotem na xhr-streaming / xhr-poling - Ulepszenia HTTP/2 WebS...
Zadowienie trasy wiadomości jest rozpoznawane przez Next.js
- Dodanie logowania w celu weryfikacji trasy jest uderzane - Plik trasy istnieje, a struktura jest prawidłowa dla Next.js 15
Usuwanie nieistniejących "aktywnych" właściwość z STOMP
- Klient STOMP nie ma "aktywnej" właściwości - Sprawdź tylko "połączony" nieruchomość, która jest właściwym wskaźnikiem stanu
Usuwanie nieobsługińcy nieobsługińcy naWebSocketError z klienta STOMP
- onWebSocketError nie jest właściwość w ClientOptions - Obsługa błędów SockJS (jednorazowa, zamknięta) zapewniają już obsługę błędów
Dodawanie kompleksowej obsługi błędów WebSocket i rejestrowanie
- Dodano obsługujący błędy SockJS (na otwarte, onerror, onclose) do naładowania awarii połączenia - Dodano wykrywanie timeoutu (10 sekund), aby zidentyfikować c...
Usuń nieprawidłowe obejście agenta HTTPS
- Odwrócono zmiany, które omijały walidację certyfikatu - Certyfikaty są wydawane przez usługę auto-cert (Let's Encrypt), niepodpisany samodzielnie - Muszę zbad...
Użyj HTTPS z agentem, który akceptuje samodzielne certyfikaty
- Odwrócony, aby zawsze używać HTTPS (nie HTTP) - Dodano agenta HTTPS z rejectUnautoized: false dla samopodpisanych certyfikatów - To pozwala na połączenie tras...
Użyj nazwy usługi Kubernetes dla MediaService, aby uniknąć problemów z certyfikatem SSL
- Trasy Next.js teraz używane - Pozwala to uniknąć samopodpisowanych błędów certyfikatu podczas łączenia się z https://media.kamocrm.com - Żądania po stronie kl...
Usuń stare /api/security/media/ trasy, które przechwytywali żądania
- Stare trasy były przekazywali do APIService, który nie ma już punktów końcowych mediów - Wszystkie żądania mediów powinny przejść przez /api/media/ trasy bezp...
Dodaj szczegółową rejestrowanie błędów dla tworzenia sesji MediaService
- Nazywany URL logowania MediaService - Nagłówki odpowiedzi dziennika - Ulepszone rejestrowanie błędów z pełnymi szczegółami błędów - Dołącz adres URL w odpowie...
Powrót do działań/checkout-v4, aby dopasować się do innych projektów Next.js
- Usuń złożoną ręczną logikę kasową, która powodowała powiesić - Używaj standardowych akcji/checkout-v4, takich jak kamo-login i kamo-rejestr - Uprość kontekst ...
Użyj płytkim klonem z timeoutem, aby zapobiec powieszeniu
- Użyj --depth 1 do szybszego klonowania - Dodaj timeout (120s dla płytkich, 300s za pełny) - Fallback to pełny klon jeśli płytkie zawiodą - W razie potrzeby po...
Zmiana w prawidłowym katalogu przed klonem git, aby uniknąć błędu katalogu roboczego
- Zmiana /tmp lub / przed usunięciem/cloningspace - Usuwaj katalog tylko jeśli istnieje, ale nie jest git repo - Zapobiega błędowi "Nie można odczytać bieżącego...
Użyj zakodowanych adresów URL repozytorium repozytorium i ustaw GITHUB_WORKSPACE env var
- Użyj bezpośredniego repozytorium URL, aby uniknąć problemów z rozdzielczością DNS/hostname - Ustaw zmienną środowiskową GITHUB_WORKSPACE dla kolejnych kroków ...
Używaj klonu git bezpośrednio zamiast polegać na pustej przestrzeni roboczej
- Repozytorium Klonów przy użyciu git bezpośrednio z repozytorium URL - Obsługa zarówno świeżych klonów, jak i istniejących przypadków repozytorium - Użyj reżys...
Uproszczenie wszystkich etapów kasy - usuń operacje git, które zawieszają
- Usuń git fetch/reset/czystek z pracy - Forgejo runner już sprawdził kod - Po prostu sprawdź GITHUB_WORKSPACE jest poprawny
Uproszczenie kroku kasowego - usuń klon git, który wiszący
- Usuń logikę klonu, która powodowało 20+ minut wisi - Forgejo biegacz ma już wyeksponowany kod, wystarczy zweryfikować katalog - Usuń niepotrzebne operacje git...
Poprawa kasy i Docker build context handling
- Dodawanie odpowiedniego repozytorium klonowania, jeśli nie jest jeszcze sprawdzone - Sprawdź Dockerfile istnieje przed budynkiem - Użyj bezwzględnych ścieżek ...
Zamień akcje / kasę na ręczną kasę git, aby uniknąć problemów z DNS
- Zastąp akcje/checkout-v4 ręcznymi poleceniami kasy git - Biegacz Forgejo już ma sprawdzony kod, wystarczy upewnić się, że stan czysty - Naprawiono awarię wysz...
Dodaj bezpośrednie trasy MediaService za pośrednictwem multimediów.-domain dla WebSocket
- Utwórz nowe /api/media/- trasy, które przekierowywać się bezpośrednio na media. - Te trasy omijać APIService, aby umożliwić bezpieczne połączenia WebSocket - ...
Jak to, co widzisz żeglugę?
Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.
