Add grayscale logo background to root page instead of creating room page
- Added logo background to existing root /page.tsx - Logo displayed at 60% size, grayscale, centered and vertically aligned - Removed incorrectly created /room/...
Explicitly create Janus VideoRoom before joining to resolve 'No such room' error
Improve video call connection reliability - enhanced subscription logic, ICE state handling, and publisher detection with retries
Fix Janus session initialization - properly capture and validate session object
Replace 'any' type with Record<string, unknown> to fix TypeScript build error
Validate existing session before reuse and fix session attach method issue
Fix Janus session initialization - wait for success callback before resolving
Comprehensive WebRTC video call fixes - remote stream handling, modern UI, and subscription logic
Handle call-answered messages, improve error logging, and fix session cleanup
Move answerIncomingCall declaration before startAudioCall to fix 'used before declaration' error
Move addSystemMessage declaration before useEffect that uses it - Fixes 'used before declaration' TypeScript error
Use getUsernameAlias() instead of non-existent getName() method on Member
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
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
Remove useEffect dependencies causing connection to abort - empty dependency array so effect only runs once on mount
Remove invalid SockJS.OPEN constants causing TypeScript build error
Properly configure Spring Security for WebSocket - disable CSRF completely, enable session creation IF_REQUIRED for WebSocket handshake
Disable CSRF for /ws/** endpoints and simplify security config to fix SockJS /ws/info 405 error
Explicitly allow GET/POST/HEAD methods for /ws/** endpoints to fix SockJS /ws/info 405 error
Remove invalid method calls causing compilation errors (getId on MediaSession, getStatusCode on ServerHttpResponse)
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 ...
Add WebSocket middleware and ServersTransport to IngressRoute
- Added media-websocket-upgrade middleware for WebSocket upgrade headers - Added media-websocket-transport to disable HTTP/2 (WebSocket requires HTTP/1.1) - Thi...
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...
เปลี่ยนรายการ NTSPOOLY จากทุกรายการเป็นข่าวใหม่ เพื่อป้องกันไม่ให้มีการเล่นเพลงซ้ํา - เฉพาะส่งข้อความใหม่หลังการบอกรับ
เหมือนที่คุณเห็นการขนส่ง?
ทั้งหมดของมันมาถึง ในที่ทํางานของคุณเอง เริ่มที่แผนฟรี และอ่านหน้านี้อีกครั้งในเดือน.
