Documentation
¶
Overview ¶
Package websocket 承载实时 WebSocket 连接、分发、订阅注册与广播。
L2 | 父级: internal/handler(L1 见 AGENTS.md)
成员清单:
- handler.go / connection.go / dispatch.go / control.go / error.go / values.go: 连接生命周期、消息分发、带请求身份 ACK 的控制动作表、错误与取值。
- room_subscription_handler.go / session_binding.go / broadcast.go: 房间订阅(含权威空 slot 快照清理)、会话绑定与广播。
- goal_rpc_handler.go / goal_rpc_registry.go / goal_event_broadcaster.go: Codex app-server Goal RPC、pending call 注册与事件广播。
- app_event_subscription.go / room_subscription_registry.go / workspace_*.go: 房间、工作区、事件订阅的引用状态转换与 runtime 快照广播。
- live_workspace.go:实时工作区推送。
[PROTOCOL]: 变更时更新此头部,然后检查父级入口 AGENTS.md(L1)
[INPUT]: 依赖 Room 订阅请求、权限校验与实时服务的活跃 slot 状态。 [OUTPUT]: 对新订阅者发送权威 pending slot 快照并建立 Room 事件订阅。 [POS]: websocket handler 的 Room 订阅恢复入口。
Index ¶
- type Handler
- func (h *Handler) BroadcastDirectoryChanged(ctx context.Context, reason string, data map[string]any)
- func (h *Handler) BroadcastRoomEvent(ctx context.Context, roomID string, eventType protocol.EventType, ...)
- func (h *Handler) BroadcastRoomResyncRequired(ctx context.Context, roomID string, conversationID string, reason string)
- func (h *Handler) BroadcastScheduledTaskChanged(ctx context.Context, event automationdomain.ScheduledTaskEvent)
- func (h *Handler) HandleWebSocket(writer http.ResponseWriter, request *http.Request)
- func (h *Handler) RemoveRoom(roomID string)
- type RuntimeSnapshot
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler 封装 WebSocket 生命周期与控制消息分发。
func NewHandler ¶
func NewHandler( api *handlershared.API, roomService *roompkg.Service, roomRealtime *roompkg.RealtimeService, dm *dmsvc.Service, goals *goalsvc.Service, permission *permissionctx.Context, runtime *runtimectx.Manager, channels *channelspkg.Router, workspaceService *workspacepkg.Service, runtimeProvider func(string) RuntimeSnapshot, allowedOrigins []string, ) *Handler
NewHandler 创建 WebSocket handler。
func (*Handler) BroadcastDirectoryChanged ¶ added in v0.1.21
func (h *Handler) BroadcastDirectoryChanged(ctx context.Context, reason string, data map[string]any)
BroadcastDirectoryChanged 广播目录失效事件,前端收到后通过 REST 重新拉取快照。
func (*Handler) BroadcastRoomEvent ¶
func (h *Handler) BroadcastRoomEvent( ctx context.Context, roomID string, eventType protocol.EventType, data map[string]any, )
BroadcastRoomEvent 广播共享 room 事件。
func (*Handler) BroadcastRoomResyncRequired ¶
func (h *Handler) BroadcastRoomResyncRequired( ctx context.Context, roomID string, conversationID string, reason string, )
BroadcastRoomResyncRequired 广播 chat resync 通知。
func (*Handler) BroadcastScheduledTaskChanged ¶ added in v0.1.21
func (h *Handler) BroadcastScheduledTaskChanged(ctx context.Context, event automationdomain.ScheduledTaskEvent)
BroadcastScheduledTaskChanged 广播定时任务失效事件,避免前端高频轮询。
func (*Handler) HandleWebSocket ¶
func (h *Handler) HandleWebSocket(writer http.ResponseWriter, request *http.Request)
HandleWebSocket 处理 WebSocket 会话。
func (*Handler) RemoveRoom ¶
RemoveRoom 从 chat 广播注册表中移除目标 room。
type RuntimeSnapshot ¶
type RuntimeSnapshot struct {
AgentID string `json:"agent_id"`
RunningTaskCount int `json:"running_task_count"`
Status string `json:"status"`
}
RuntimeSnapshot 描述某个 agent 当前的运行态快照。
Source Files
¶
- app_event_subscription.go
- broadcast.go
- connection.go
- control.go
- control_dispatcher.go
- dispatch.go
- doc.go
- error.go
- goal_event_broadcaster.go
- goal_rpc_handler.go
- goal_rpc_registry.go
- handler.go
- live_workspace.go
- room_subscription_handler.go
- room_subscription_registry.go
- session_binding.go
- values.go
- workspace_runtime.go
- workspace_subscription.go