Используйте getUsernameAlias() вместо несуществующего метода getName()
Добавьте apiSecret в ответ конфигурации WebRTC для аутентификации Janus
Set isCallActive to true when room is joined to prevent video panel from disappearing - Set isCallActive=true in join room success callback - Keeps video panel visible while ICE connection establishes - Prevents panel from disappearing when isConnecting becomes false before ICE connects
Prevent premature cleanup of video call by fixing cleanup effect - Remove localStream from cleanup effect dependencies to prevent premature cleanup - Add localStreamRef to track current stream for cleanup - Keep ref in sync with state via useEffect - Fixes video call panel appearing then quickly disappearing
Use handleRemoteJsep instead of send for streaming answer JSEP - Replace handle.send with handleRemoteJsep after creating streaming answer - handleRemoteJsep is the correct method for sending JSEP after createAnswer - Fixes TypeScript error about missing message property in PluginMessage
Remove unsupported audioRecv/videoRecv from VideoRoom createAnswer - Remove audioRecv and videoRecv properties from deprecated media object - These properties are not supported by the Janus type definition - Receiving capabilities are negotiated automatically via SDP
Remove deprecated media properties from createAnswer calls - Remove media property with audioRecv/videoRecv from subscriber createAnswer - Remove media property from streaming plugin createAnswer - createAnswer automatically handles receiving based on the offer JSEP
Add system messages to chat for WebRTC events - Add 'system' author type to ChatMessage interface - Add system message rendering with styled bubble - Add system messages for connection attempts, call status, missed calls - Integrate with useWebRTC to dispatch system message events - Use MediaSession GUID (sessionGuid) for Janus session identification
Replace 'any' types with proper TypeScript types in useWebRTC and ChatDock - Replace all 'any' types with Record<string, unknown>, RTCSessionDescriptionInit, string | Error, etc. - Fix ChatDock message type to use proper interface instead of 'any' - Fix unused parameter warnings by prefixing with underscore
Add Janus WebRTC Gateway configuration documentation - Document current Janus configuration on k1m1 - Add configuration reference files for Janus setup
Добавьте JanusService для интеграции шлюзов WebRTC - Добавьте Java-сервис JanusService для взаимодействия с API-интерфейсом Janus WebRTC Gateway - Настройте URL-адрес, секреты и серверы STUN/TURN в приложении. yml - создание сеанса поддержки, вложение плагинов и управление комнатами
Auto-open chat window when receiving messages from another user - unminimize if minimized, open if closed
Remove useEffect dependencies causing connection to abort - empty dependency array so effect only runs once on mount
Добавить WebSocketLogging Фильтр для регистрации всех /ws/** запросов для диагностики сбоев соединения
Remove invalid SockJS.OPEN constants causing TypeScript build error
Правильно настроить Spring Security для WebSocket - полностью отключить CSRF, включить создание сеанса IF REQUIRED для рукопожатия WebSocket
Отключить CSRF для конечных точек /ws/** и упростить конфигурацию безопасности для исправления ошибки SockJS/ws/info 405
Явно разрешить GET/POST/HEAD-методы для конечных точек /ws/** для исправления ошибки SockJS/ws/info 405
Add extensive SockJS connection error logging to diagnose connection failures
Удалить недействительные вызовы, вызывающие ошибки компиляции (getId on MediaSession, getStatusCode on ServerHttpResponse)
Добавьте EXTENSIVE logging в WebSocketConfig и ChatWebSocketController - каждый кадр STOMP, рукопожатие, подписка и сообщение зарегистрированы
Add EXTENSIVE logging to useChatWebSocket hook and ChatBox component - every single step logged
Enhanced WebSocket connection logging and fixed URL construction
WebSocket connection - use public domain kamocrm.com:8443 instead of private IP
- Use public domain with port 8443 (e.g., kamocrm.com:8443) - Public address forwards to NodePort 30843 on private IP 192.168.42.191 - Extracts base domain from...
WebSocket connection - use direct node IP via NodePort 30843 (bypasses Traefik)
- Connect directly to node IP 192.168.42.191:30843 for WebSocket - NodePort 30843 exposes MediaService port 8443 directly - Bypasses Traefik to avoid WebSocket ...
Добавьте промежуточное ПО WebSocket и серверы Transport to IngressRoute
- Добавлено промежуточное программное обеспечение для обновления WebSocket - Добавлен медиа-вебсокет-перенос для отключения HTTP/2 (WebSocket требует HTTP/1.1) ...
WebSocket connection - use Traefik ingress instead of direct port 8443
- Changed WebSocket URL to connect through Traefik on standard HTTPS port (443) - Removed port 8443 from domain connections (Traefik routes to service on port 8...
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...
Изменение NATS DeliverPolicy от All до New для предотвращения повторного воспроизведения сообщений - только доставка новых сообщений после подписки
Триггерный трубопровод для восстановления с помощью новейшей библиотеки с разделением Камо
Use session GUID directly as NATS consumer name - Session GUID is already unique, no need for prefix - Simplifies code and consumer naming
Добавить поддержку уникальных имен потребителей в подписках NATS - Добавить перегруженный метод подписки, который принимает пользовательское имя пользователя - Позволяет нескольким сеансам чата иметь независимых потребителей NATS - Исправляет проблему, когда все сеансы совместно используются одним и тем же потребителем, вызывая конфликты доставки сообщений
Как вы видите судоходство?
Все это приходит в ваше рабочее пространство самостоятельно. Начните с бесплатного плана и прочитайте эту страницу через месяц.
