Activate STOMP client only after SockJS opens
Critical bug fix: STOMP client was being activated before SockJS opened, causing immediate disconnect. Now waits for SockJS onopen event before activating STOMP...
WebSocket接続用のSockJSフォールバックトランスポートを有効にする
WebSocketのアップグレードが失敗した場合、xhr-streamingとxhr-pollingをフォールバックとして許可します.
Enhance ChatBox with dynamic color system and increased height
- Increase message viewing area by 33% (DOCKED_HEIGHT: 360 -> 480) - Create ChatBoxStyles.tsx with dynamic CSS variable-based color system - Apply primary color...
プロのポーランド語でチャットボックスのデザインを近代化
- 微妙な灰色の勾配ときれいな白い背景を実装 - プライマリカラースキームと統合されたカスタムスクロールバースタイリングを追加 - 勾配の背景および非対称の境界のメッセージの泡を高めて下さい - 丸型の設計および焦点リング効果の入力分野を近代化して下さい - 改良されたアバターのスタイリングおよび勾配の背景のヘッダーを...
UseChatWebSocket で無効な 'active' プロパティチェックを削除
@stomp/stompjs からのクライアントタイプには、'active' プロパティはありません。 client.activate() がクライアント作成直後に呼び出されるため、無効なチェックを削除しました.
STOMP クライアントをアクティブにする前に SockJS を開くのを待ちます
- SockJS接続が準備される前にSTOMPクライアントが活性化したレース条件を修正 - client.activate() を SockJS のオープンコールバックに移動 - これは、リアルタイムメッセージを防ぐ即時接続閉鎖の問題を修正する必要があります
Add TomcatConnectorCustomizer to force SSL keystore config
- Spring Boot's application.yml SSL config not being applied - Use TomcatConnectorCustomizer to programmatically set keystore - Forces connector to use /etc/ssl...
Hardcode SSL settings in ConfigMap for production
- Removed environment variable placeholders - Hardcoded port 8443, SSL enabled, keystore path - Fixes Spring Boot not resolving env vars correctly
Correct Spring Boot SSL environment variable names
- Changed SSL_ENABLED to SERVER_SSL_ENABLED - Changed SSL_KEY_STORE to SERVER_SSL_KEY_STORE - Changed SSL_KEY_STORE_PASSWORD to SERVER_SSL_KEY_STORE_PASSWORD - ...
すべてのWebRTC APIリクエストをポート 8443 にルートする
- すべてのWebRTC APIのルートをmedia.{domain}:8443に更新 - WebRTC エンドポイントで Traefik を使用しないでください。 - メディア API と WebSocket の設定をマッチ
ポートへのすべてのメディアサービス要求をルート 8443 (Traefik をバイパス)
- メディアを使用するすべてのメディア API ルートを更新します。{domain}:8443 - MediaService の Traefik を使用していない - API と WebSocket の両方がポート 8443 に直行 - 内部.{domain} は、以前のように Traefik を続けて
Simplify to HTTPS:8443 only, remove dual port config
- MediaService runs ONLY on port 8443 (HTTPS) - No more Traefik routing for MediaService - Removed DualPortConfig complexity - All traffic (API + WebSocket) goe...
Use SSLHostConfig API for Tomcat SSL configuration
- Use SSLHostConfig and SSLHostConfigCertificate (correct Tomcat API) - Configure certificate via **************** - Fixes compilation errors with setAttribute/...
Use setAttribute for Tomcat SSL configuration
- Changed from setKeystoreFile/Pass/Type/Alias to setAttribute - Tomcat 10+ uses setAttribute for SSL properties - Fixes compilation errors
Run MediaService on BOTH ports 80 (HTTP API) and 8443 (HTTPS WebSocket)
- Reverted service.yaml and ingressroute.yaml to use port 80 - Removed forced SERVER_PORT and SSL_ENABLED env vars - Added DualPortConfig to programmatically ad...
NodePort 30843にルーティングするポート8443(外部)に接続
- ルーターは外的な 8443 を k1m1 NodePort 30843 に先にします - ブラウザはmedia.kamocrm.comを使用しています:8443 - 内部NodePortは30843 (Kubernetesの有効な範囲)です
Use NodePort 30843 instead of hostPort for WebSocket
- hostPort may be blocked by firewall rules - NodePort 30843 is in valid range (30000-32767) - Browser connects to external port 8443 - Router forwards 8443 -> ...
Add SSL configuration to k8s ConfigMap
- ConfigMap was missing SSL config from application.yml - Added server.ssl settings with environment variable support - Matches local application.yml configurat...
Use hostPort instead of NodePort for 8443
- NodePort range is 30000-32767, cannot use 8443 - Use hostPort to bind directly to host port 8443 - Removed service-websocket.yaml
MediaService ポート 8443 を WebSocket に接続
- Media.kamocrm.comを使用するWebSocket接続を更新:8443 - WebSocket専用トラフィックのTraefikを回避 - 直接 HTTPS/HTTP1.1 接続を MediaService に使用 - API 呼び出しは、Traefik を介して標準パスを使用して継続します
Expose MediaService on port 8443 for WebSocket over HTTPS/HTTP1.1
- Added NodePort service on 8443 for direct WebSocket access (bypasses Traefik) - Mount wildcard-kamocrm-com SSL certificate - Init container converts PEM to PK...
HTTP/2 の互換性のための WebSocket のみの輸送制限を削除します
- ブラウザのWebSocket APIはHTTP/2(RFC 8441は実装していません)をサポートしていません - ネイティブWebSocketはHTTP / 1.1が必要です HTTP/2で失敗するアップグレード - SockJS自動選択トランスポート(xhr-streaming/xhr-polling は HT...
Restore HTTP/2 for WebSockets (RFC 8441 support)
- WebSockets CAN work over HTTP/2 via RFC 8441 - Removed TLSOption (not needed) - Removed ServersTransport reference (let HTTP/2 work) - Restored simple domain-...
Use explicit Host() for /ws route to enable TLSOption
- Changed /ws route from HostRegexp to Host(media.kamocrm.com) - TLSOption can only be applied to explicit hosts (not regex) - ALPN negotiation happens during T...
Force HTTP/1.1 for MediaService ONLY via TLSOption
- Created media-tls-http1 TLSOption with alpnProtocols: [http/1.1] - Referenced ONLY in media-route IngressRoute - Does not affect other Traefik routes - Fixes ...
Revert "fix(traefik): disable idle timeout for WebSocket connections"
This reverts commit ****************
Separate /ws route for WebSocket, keep HTTP/2 for API
- Added two routes: /ws for WebSocket (higher priority), rest for API - Only /ws uses media-websocket-transport (HTTP/2 disabled) - API routes can use HTTP/2 fo...
Use Host() instead of HostRegexp() for media-route
- Simplified to Host(media.kamocrm.com) - Avoids regex escaping issues with backticks - Tests show route is working with simple Host match
Force HTTP/1.1 via TLSOption for WebSocket compatibility
- Created TLSOption to disable HTTP/2 ALPN negotiation - Forces browsers to use HTTP/1.1 for media.kamocrm.com - WebSocket upgrades require HTTP/1.1 protocol - ...
Disable idle timeout for WebSocket connections
- Added idleTimeout=0 to websecure entrypoint - Prevents Traefik from closing WebSocket connections due to inactivity - Fixes SockJS WebSocket timeout issues
WebSocket専用トランスポート(XHRポーリング不可)
- [websocket, xhr-streaming, xhr-polling] から [websocket] に SockJS の転送を変更しました。 - XHR ポーリングにフォールバックを削除します。 - 純粋なWebSocket接続を強制する - WebSocketが劣化の代わりに動作しない場合は、高速失敗
Add CORS middleware to media-route for cross-origin WebSocket
- Added cors middleware to allow cross-origin connections - Enables WebSocket connections from internal.* to media.* - Allows all origins, methods, and headers ...
WebSocketをmedia.kamocrm.comに直接接続する
- 元のアプローチに逆転させる:媒体に直接接続して下さい。* サブドメイン - 不要な同オリジンの複雑さを削除 - /wsをミドルウェアからバイパス(不要) - 内部IngressRouteから/wsルーティングを削除 - MediaService CORSは既にすべての起源を可能にします - シンプルでクリーンなソリ...
Kamowsmedia-serviceから明示的な名前空間参照を削除します
- どちらのサービスは同じ名前空間(kamo)にあります - 明示的な名前空間参照は必要ありません - 潜在的なクロスネームスペースの問題を避けます
/ws を次から書き直します。 config (Traefik によって処理される)
- 削除された Next.js は /ws パスのために書き直します - Traefik IngressRouteレベルで処理されるWebSocketルーティング - Traefik は内部.kamocrm.com/ws をルートします。 メディアサービス
ルート/wsは、Trefik経由でMediaServiceに直接リクエストをリクエスト
- IngressRouteで/wsパスの専用ルートを追加 - ルート内部.kamocrm.com/ws -> メディアサービス - WebSocketサポート用のMedia-routeと同じ ServersTransportを使用する - WebSocket接続用のNext.jsをバイパスします(Next.jsはWS...
/ws WebSocket が auth リダイレクトなしでエンドポイントを許可する
- ミドルウェアバイパスに /ws パスを追加 - SockJSはリダイレクトなしで/ws/infoに接続する必要があります - WebSocket接続は、まだ***クッキーを持っています - WebSocket接続タイムアウトの問題を修正
WebSocketの接続を同じoriginに変更する
- media.kamocrm.comから同じ起源に変更(internal.kamocrm.com) - クロスオリジンWebSocket接続の問題を回避 - Add Next.jsは、メディアサービスにプロキシ/wsにルールを書き換える - ブラウザは内部.kamocrm.com/ws に接続します - Next.j...
WebRTC エンドポイントの API プロキシ ルートを追加します
- MediaService に /api/webrtc/config プロキシを追加 - Janus認証用の/api/webrtc/tokenプロキシを追加 - /api/webrtc/call/initiate、応答、エンドプロキシを追加 - /api/mediaプロキシと同じパターンに従う - kamo-inte...
Remove @kubernetescrd suffix from serversTransport reference
- Traefik error: cross-namespace format not allowed when crossnamespace disabled - IngressRoute and ServersTransport are in same namespace (kamo) - Use simple n...
GetDisplayMediaから無効なコーダプロパティを削除します
- シンプルなビデオを使用して:画面共有のためにtrue - ビルドが成功する
ビルドエラーを解決する - PhoneOff を CallEnd に置き換える
- PhoneOff アイコンは @mui/icons-material に存在しません - 正しいMUIアイコンであるCallEndを使用する - 未使用の重複ファイル(ChatBoxWithWebRTC、VideoCallView、JanusWebRTC)を削除 - ビルドが成功する
完全なピアツーピアWebRTCは、シグナル伝達と呼びます
- 完全なシグナル伝達サポートと追加されたuseWebRTCのホック - 統合されたWebSocketのシグナル伝達(オファー、回答、ICE候補) - 回答/デコーダーボタンで着信通知を追加 - 通話UIの動的高さでチャットボックスを更新 - シグナル伝達のためのuseChatWebSocketからSTOMPクライアン...
Add WebSocket signaling for peer-to-peer calls
- Added WebRTCSignalingController for call signaling - Handles offer/answer exchange via STOMP - Forwards ICE candidates between peers - Manages call hangup not...
Janus WebRTC 統合を音声/ビデオ通話に追加
- WebRTCコール管理用のJanusWebRTCホックを追加 - チャットビデオディスプレイ用のVideoCallPanelコンポーネントを追加 - シームレスなコール体験のためのチャットボックスと統合 - 音声通話、ビデオ通話、画面共有のサポート - ビデオ表示のための適切なアスペクト比(16:9) - コールコ...