websocket

package
v0.1.27 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2026 License: Apache-2.0 Imports: 23 Imported by: 0

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

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

func (h *Handler) RemoveRoom(roomID string)

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 当前的运行态快照。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL