需要 Dify Enterprise 3.11.1 或更高版本。
开启协同编辑
在 Helm chart values 中设置开关:extraEnv:
- 部署独立的 Socket.IO 服务(
<release>-api-websocket),处理全部实时协同流量。 - 将网关上的
/socket.io路由到该服务。 - 在 API 与 Web 的 ConfigMap 中设置
ENABLE_COLLABORATION_MODE。 - 根据
global.consoleApiDomain与global.useTLS自动生成 Web 前端的NEXT_PUBLIC_SOCKET_URL(启用 TLS 时为wss://)。
工作原理
协同流量使用 Socket.IO 协议(WebSocket,支持 HTTP 长轮询降级),路径为控制台 API 域名下的/socket.io。Chart 将其部署为独立于主 API Pod 的专用 Deployment:
websocket Deployment 固定为 1 副本、1 个 gunicorn worker,并使用
Recreate 更新策略。Socket.IO 的鉴权会话保存在进程内存中,所有 socket 流量必须共享同一个进程,请勿扩容该 Deployment。房间事件通过现有 Redis 配置广播,主 API 与 worker 仍可照常独立扩缩容。
资源配置
通过collaboration.websocket 覆盖 websocket Pod 的资源配置:
前置条件
- 编辑者的浏览器必须能够访问
global.consoleApiDomain;前端会连接wss://<consoleApiDomain>/socket.io(未启用 TLS 时为ws://)。 - 网关前的负载均衡器或 Ingress 必须允许控制台 API 域名上的 WebSocket 协议升级。
从手动配置迁移
如果之前通过extraEnv 注入 ENABLE_COLLABORATION_MODE / NEXT_PUBLIC_SOCKET_URL 来开启协同编辑,请移除这些条目并改为设置 collaboration.enabled: true。保留旧的 extraEnv 条目不会导致错误,只是冗余:容器级 extraEnv 的优先级高于 chart 生成的 ConfigMap 值。