Documentation
¶
Overview ¶
Package local 实现 local binder:本地终端连接、读写、尺寸调整。
Index ¶
- type LangProvider
- type Local
- func (l *Local) Cleanup()
- func (l *Local) ConnectLocalAsync(req LocalConnectRequest) (string, error)
- func (l *Local) DisconnectLocal(sessionID string)
- func (l *Local) ListLocalShells() ([]localterm_svc.ShellInfo, error)
- func (l *Local) ResizeLocalTerminal(sessionID string, cols, rows int) error
- func (l *Local) SplitLocal(existingSessionID string, cols, rows int) (string, error)
- func (l *Local) Startup(ctx context.Context)
- func (l *Local) WriteLocal(sessionID string, dataB64 string) error
- type LocalConnectEvent
- type LocalConnectRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Local ¶
type Local struct {
// contains filtered or unexported fields
}
Local binder。
func New ¶
func New(appCtx context.Context, lang LangProvider, mgr *localterm_svc.Manager) *Local
New 构造 local binder。
func (*Local) ConnectLocalAsync ¶
func (l *Local) ConnectLocalAsync(req LocalConnectRequest) (string, error)
ConnectLocalAsync 异步启动本地终端,立即返回 connectionId。
func (*Local) DisconnectLocal ¶
DisconnectLocal 断开本地终端。
func (*Local) ListLocalShells ¶
func (l *Local) ListLocalShells() ([]localterm_svc.ShellInfo, error)
ListLocalShells 委托 localterm_svc 探测本机可用 shell(/etc/shells、WSL 发行版等),供前端下拉预设。
func (*Local) ResizeLocalTerminal ¶
ResizeLocalTerminal 调整本地终端尺寸。
func (*Local) SplitLocal ¶
SplitLocal 本地终端分屏:以现有会话相同的 shell 配置新开一个会话,返回新 sessionID。 与 SSH 不同,本地没有可复用的连接,分屏即再起一个同配置的 shell PTY。回调接线与 ConnectLocalAsync 一致(sessionID 已知后再挂,避免首屏输出丢失)。
type LocalConnectEvent ¶
type LocalConnectEvent struct {
Type string `json:"type"` // "progress" | "connected" | "error"
Message string `json:"message,omitempty"` // 进度消息
SessionID string `json:"sessionId,omitempty"` // type=connected 时返回的会话ID
Error string `json:"error,omitempty"` // type=error 时的错误信息
}
LocalConnectEvent 本地终端异步连接事件。
type LocalConnectRequest ¶
type LocalConnectRequest struct {
AssetID int64 `json:"assetId"`
Cols int `json:"cols"`
Rows int `json:"rows"`
}
LocalConnectRequest 前端本地终端连接请求。
Click to show internal directories.
Click to hide internal directories.