DBメンバーによるメッセージの閲覧をスキップ
RedisからMemberIDを読み取るgetMemberIdFromRequest()を抽出する DBを打たずにセッション。 ではなく getMessages() で使う getCurrentMember() — メンバーのエンティティティティティティティティティティは、そこにヌルチェックされただけだった。 決して使...
オーバーヘッドと非同期TTLのリフレッシュをロギングする
- k8sコンフィグマップ(実際の生産コンフィグ):低セキュリティ/ヒカリ INFO/DEBUG から WARN へのロギング、HikariCP プールの設定 (最大 20) - KSessionService: ストリップ ~60 System.out.println は、火災した呼び出し 128-char セッショ...
ログノイズとトーン接続プールを削減
- TRACEからWARN、HikariCPへのスプリングセキュリティをDEBUGから下げる WARN — リクエストごとの同期ログ書き込みの数十を排除 - 明示的なHikariCPプールコンフィグ(最大20、ミニアイドル5)を追加して防止 同時負荷下での接続排気 - getCurrentMember() から 14 ...
チャットメッセージエンドポイントからメッセージロギングを一枚削除
System.out.println 呼び出しをメッセージストリームマップ内で削除 1回のメッセージ(1リクエストあたり100 I/Oの操作)と最終処理 すべてのメッセージを再びストリーミングして、ログインのためのメンバーIDを収集するログ
クエリパラメータから、クロスサブドメインWebSocket authを受け付けます
?***= クエリパラメータから ID を読みます。 クッキー。 これは、内部のフロントエンドを可能にします.kamocrm.com 認証する WebSocketは、クロスドメインクッキーなしでmedia.kamocrm.comに接続します。 インターセプターはRedisに対して直接セッションを検証します.
独自の消費者再試行によるNATSコンシューマーバインディングの処理
- createNatsMessageHandler() メソッドにメッセージハンドラーを抽出する - 「Consumerは既にバインドした」時に、独自のコンシューマー名でリトリーロジックを追加 サーバの再起動後にエラーが発生します - 動詞デバッグロギングをクリーンアップ
Add WebSocket認証を経由***クッキーハンドシェイクインターセプター
Handhakeに***クッキーを読み込むWebSocketAuthInterceptorを追加, KSessionService でセッションを解決し、memberId/orgId を格納する WebSocket セッション属性。 STOMP CONNECTでプリンシパルを設定する ダウンストリームプレゼンスと通知機...
ポートのTraefikによるルートWebSocket 443
- service.yaml:podの実際のリスニングポートに合わせてポート80→8443を修正 - ingressroute.yaml: バックエンドのスキーム https + port 8443 を使用する - servertransport.yaml: バックエンド TLS の証明書に insecureSkipV...
NATS接続用のクラスター内部DNSを使用する
デフォルトNATS URLをWireGuard IP(100.64.x.x)から変更 nats.kamo.svc.cluster.local ローカルサーバ リモートノード (k0m1、k2m1)はWireGuard IPに残ります.
メディアサービス展開でTLS証明書をオプションに
- 任意追加:ワイルドカードkamocrm-comの秘密のボリュームにtrue - cert-converter initコンテナを更新して、不足している証明書を優雅に処理
古いTailscale IPの代わりにWireGuard VPN IP(10.8.x.x)を使用するkubeconfigの更新を修正しました
K1m1とk2m1の並列展開にレファクタ
- 個別のジョブにビルドとデプロイを分割 - ビルド完了後にk1m1とk2m1を並行して展開 - 総展開時間をかなり減らして下さい
Fix NATSサブスクリプションエラー処理 - 「Consumer既にバインドされている」エラーを扱い、クリーンアップロギングを改善
同時コール検出と自動接続を追加 - 同時試行を検出するために、セッションごとの呼び出しを追跡 - 両方のユーザーが同時に呼び出したときに自動解決 - 最初の発信者のコールIDを使用して、2番目の呼び出しを自動受容 - 応答/終了の呼び出しをクリーンアップ - 重複する他のメンバーの検索コードを削除
呼び出し開始メッセージ処理とメンバーの検索を改善 - コール開始メッセージの広範なロギングを追加 - MediaSessionMember の検索ロジックを簡素化 - Janus セッション作成の getSessionId() エラーを修正
WebSocket 用の Spring Security を適切に設定 - CSRF を完全に無効にし、WebSocket handhake 用のセッション作成 IF REQUIRED を有効にする
/ws/** エンドポイントの CSRF を無効にし、SockJS /ws/info 405 エラーを修正するためのセキュリティ設定を簡素化
明示的にGET/POST/HEAD メソッドを /ws/** エンドポイントで SockJS /ws/info 405 エラーを修正
コンパイルエラー(MediaSession、ServerHttpResponse の getStatusCode の getId )による不正なメソッド呼び出しを削除します
WebSocketConfigとChatWebSocketControllerにEXTENSIVEロギングを追加 - すべてのSTOMPフレーム、ハンドシェイク、サブスクリプション、およびメッセージを記録
IngressRouteにWebSocketミドルウェアとServersTransportを追加
- WebSocketアップグレードヘッダー用のメディアWebsocketアップグレードミドルウェアを追加しました - HTTP/2 (WebSocket は HTTP/1.1 が必要です) を無効にするメディア websocket-transport を追加しました。 - これは、Trefikの侵入による適切なWeb...
WebSocket live message delivery - disable ChatMessageHandler subscription, enhance logging
- Disabled ChatMessageHandler subscription to chat.session.> that was consuming messages without forwarding to WebSocket - Enhanced WebSocketConfig logging to t...
