为音频/视频通话添加 Janus WebRTC 集成
- 为WebRTC呼叫管理添加了JanusWebRTC钩 - 为聊天录像显示增加视频CallPanel组件 - 与ChatBox集成,用于无缝呼叫体验 - 支持音频通话、视频通话和屏幕共享 - 适当的视频显示宽度比(16:9) - 呼叫控制:哑声、视频切换、终端呼叫 - 在STUN/TURN支持下使用 kamocrm....
在 SockJS 恢复 WebSocket 传输
- 恢复使用websocket运输(不是投票) - WebSockets是标准的,应该正常工作 - 注重确定实际的WebSocket连接问题
在 SockJS 跳过 WebSocket 运输以避免 HTTP/2 问题
- 使用xhr-流线和xhr-波程运输,而不是网络锁 - 这些运输与HTTP/1.1和HTTP/2同时工作,不需要WebSocket升级 - 避免HTTP/2扩展的CONNECT问题并改进标题转发问题 - /ws/info 请求在 HTTP/2 中及时出局(499起),使 SockJS 无法连接
配置 SockJS 运输处理 HTTP/2 WebSocket 升级问题
- 明确配置SockJS运输订单,以选择WebSocket,然后回落到xhr-流/xhr-波 - HTTP/2 WebSocket升级可能失败,SockJS将自动回落到HTTP/1.1相容的运输上 - 这将解决浏览器使用 HTTP/2 时的 WebSocket 连接超时
从 STOMP 中删除不存在的“ 活动” 属性 客户端记录
- STOMP (英语) 客户端没有“ 活动” 属性 - 只检查“ 连接” 属性, 该属性为正确的状态指标
从 STOMP 客户端中删除不支持的 WebSocketError 处理器
- 在WebSocketError上不是客户端选项中的有效属性 - SockJS 错误处理器( 错误, 关闭) 已经提供了错误处理
添加全面的 WebSocket 错误处理和记录
- 添加SockJS出错处理器(打开、打开、关闭)以捕获连接故障 - 添加连接超时检测(10秒)以识别无声故障 - 在WebSocketError处理器上添加到STOMP客户端 - 改进记录,以确定WebSocket连接为何没有建立 - 这将有助于识别 SockJS /ws/info 请求是否失败
删除错误的 HTTPS 代理工作
- 绕过证书验证的还原更改 - 证书由自动证书服务(让我们加密)签发,而不是自签名 - 需要调查验证失败的原因
使用接受自签名证书的代理 HTTPS
- 恢复使用HTTPS(不是HTTP) - 添加 HTTPS 代理, 拒绝 未经授权: 自签证书有假 - 这使得服务器端 Next.js 路由连接到 https://media.kamocrm.com - 适用于所有媒体API线路
为 Media Service 使用 Kubernetes 服务名来避免 SSL 证书问题
- 服务器侧 Next.js 路由现在使用QQ - 这可以避免在连接 https://media.kamocrm.com 时出现自签证书错误 - 客户端请求仍然使用外部 https://media.{domain} URL 网络 - 适用于所有媒体API线路:会话/聊天、会话/[guid]、会话/[guid]/消息、信...
删除截获请求的旧/api/ 安全/ 媒体/ 路线
- 旧路线已转发给APIService,它不再有媒体终点 - 所有媒体要求应直接通过/api/媒体/途径进入媒体服务处 - 删除: - 删除: ...
为 MediaService 会话创建添加详细错误记录
- 调用日志媒体服务 URL - 日志回复信头 - 强化有全部错误细节的错误记录 - 在调试错误响应中包含 URL
返回到动作/ 检查出@ v4 以匹配其他 Next.js 项目
- 删除导致绞刑的复杂的手工取出逻辑 - 使用标准动作/ 检查出@v4, 如 kamo- login 和 Kamo- register - 简化多克建筑上下文以使用.而不是env var - 添加退出以部署 k8s 显示访问的任务
使用带有超时的浅层克隆来防止挂起
- 使用 -- -- 深度 1 为更快的克隆 - 增加超时(浅重120分,全重300分) - 如果浅度失败, 倒向完全克隆 - 必要时在浅层克隆后获取具体承诺
在 git 克隆前更改为有效的目录以避免工作目录出错
- 在删除/克隆工作空间之前更改为/tmp或/ - 只有在目录存在但不是 git repo 时才删除 - 防止“ 无法读取当前工作目录” 出错
Use hardcoded repository URL and set GITHUB_WORKSPACE env var
- Use direct repository URL to avoid DNS/hostname resolution issues - Set GITHUB_WORKSPACE environment variable for subsequent steps - Use env var in Docker bui...
Use git clone directly instead of relying on empty workspace
- Clone repository using git directly with repository URL - Handle both fresh clone and existing repository cases - Use working-directory for Docker build actio...
Simplify all checkout steps - remove git operations that hang
- Remove git fetch/reset/clean from deploy jobs - Forgejo runner already has code checked out - Just verify GITHUB_WORKSPACE is valid
Simplify checkout step - remove git clone that was hanging
- Remove git clone logic that was causing 20+ minute hangs - Forgejo runner already has code checked out, just verify directory - Remove unnecessary git fetch/r...
Improve checkout and Docker build context handling
- Add proper repository cloning if not already checked out - Verify Dockerfile exists before building - Use absolute paths for Docker build context - Fix workin...
Replace actions/checkout with manual git checkout to avoid DNS issues
- Replace actions/checkout@v4 with manual git checkout commands - Forgejo runner already has code checked out, just need to ensure clean state - Fixes DNS looku...
Add direct MediaService routes via media.{domain} for WebSocket support
- Create new /api/media/* routes that forward directly to media.{domain} - These routes bypass APIService to allow secure WebSocket connections - MediaService r...
Add logging for subscription request to backend
- Log when subscription request is sent to /app/chat/subscribe - Helps verify if subscription requests are reaching the backend
Add detailed logging for subscribe function
- Log when subscribe() is called and current connection state - Log client existence and connection status - Helps diagnose why subscriptions aren't being creat...
Add detailed WebSocket connection logging
- Enhanced logging for WebSocket connection success/failure - Log connection frame details on successful connection - Log detailed STOMP error information - Hel...
Extract large IDs from raw JSON to prevent JavaScript precision loss
- Extract memberID, userID, orgID, and securityOrgId from raw JSON string before parsing - Prevents precision loss for IDs > Number.MAX_SAFE_INTEGER (9007199254...
