terminal

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// 4K
	DefaultWriteBuf = 4 * 1024
	// 1K
	DefaultReadBuf = 1 * 1024
)

Functions

func PingHandleFunc

func PingHandleFunc(r *Request, w *Response)

处理来源客户端实现的自定义Ping, 因为浏览器并没有实现客户端Ping功能

func RegistryCmdHandleFunc

func RegistryCmdHandleFunc(command string, fn HandleFunc)

注册请求处理函数

Types

type HandleFunc

type HandleFunc func(*Request, *Response)

基于Websocket的请求响应模式, 用于websocket的指令控制设计

func GetCmdHandleFunc

func GetCmdHandleFunc(command string) HandleFunc

type Logger

type Logger interface {
	WriteTextln(format string, a ...any)
	WriteText(msg string)
}

type Request

type Request struct {
	// 请求Id
	Id string `json:"id"`
	// 指令名称
	Command string `json:"command"`
	// 指令参数
	Params json.RawMessage `json:"params"`
}

func NewRequest

func NewRequest() *Request

func ParseRequest

func ParseRequest(payload []byte) (*Request, error)

func (*Request) String

func (r *Request) String() string

func (*Request) Validate

func (r *Request) Validate() error

type Response

type Response struct {
	Request *Request `json:"request"`
	// 异常信息
	Message string `json:"message"`
	// 处理成功后的数据
	Data any `json:"data"`
}

func NewResponse

func NewResponse() *Response

func (*Response) SetData

func (resp *Response) SetData(data any) *Response

func (*Response) SetMessage

func (resp *Response) SetMessage(msg string) *Response

func (*Response) ToJSON

func (resp *Response) ToJSON() string

type StdTerminal

type StdTerminal struct {
	*mock.ServerStreamBase
	*TerminalResizer
}

func NewStdTerminal

func NewStdTerminal(width, height uint16) *StdTerminal

func (*StdTerminal) Next

Next returns the new terminal size after the terminal has been resized. It returns nil when monitoring has been stopped.

func (*StdTerminal) Read

func (i *StdTerminal) Read(p []byte) (n int, err error)

func (*StdTerminal) Write

func (i *StdTerminal) Write(p []byte) (n int, err error)

type TerminalResizer

type TerminalResizer struct {
	// contains filtered or unexported fields
}

func NewTerminalSize

func NewTerminalSize() *TerminalResizer

func (*TerminalResizer) Next

Next returns the new terminal size after the terminal has been resized. It returns nil when monitoring has been stopped.

func (*TerminalResizer) SetSize

func (i *TerminalResizer) SetSize(ts TerminalSize)

type TerminalSize

type TerminalSize struct {
	// 终端的宽度
	// @gotags: json:"width"
	Width uint16 `json:"width"`
	// 终端的高度
	// @gotags: json:"heigh"
	Heigh uint16 `json:"heigh"`
}

func NewTerminalSzie

func NewTerminalSzie() *TerminalSize

type WebSocketTerminal

type WebSocketTerminal struct {
	*TerminalResizer
	*mock.ServerStreamBase
	// contains filtered or unexported fields
}

func NewWebSocketTerminal

func NewWebSocketTerminal(conn *websocket.Conn) *WebSocketTerminal

func (*WebSocketTerminal) Close

func (t *WebSocketTerminal) Close() error

func (*WebSocketTerminal) Failed

func (i *WebSocketTerminal) Failed(err error)

func (*WebSocketTerminal) HandleCmd

func (t *WebSocketTerminal) HandleCmd(m []byte)

func (*WebSocketTerminal) Read

func (t *WebSocketTerminal) Read(p []byte) (n int, err error)

func (*WebSocketTerminal) ReadBinData

func (t *WebSocketTerminal) ReadBinData(success func([]byte), failed func(error))

读取二进制数据, 而读取过程中指令会自动处理

func (*WebSocketTerminal) ReadReq

func (i *WebSocketTerminal) ReadReq(req any) error

func (*WebSocketTerminal) ResetWriteBuf

func (i *WebSocketTerminal) ResetWriteBuf()

func (*WebSocketTerminal) Response

func (i *WebSocketTerminal) Response(resp *Response)

命令的返回

func (*WebSocketTerminal) SetAuditor

func (i *WebSocketTerminal) SetAuditor(rw io.ReadWriter)

func (*WebSocketTerminal) Success

func (i *WebSocketTerminal) Success(msg string)

func (*WebSocketTerminal) Write

func (i *WebSocketTerminal) Write(p []byte) (n int, err error)

func (*WebSocketTerminal) WriteText

func (i *WebSocketTerminal) WriteText(msg string)

func (*WebSocketTerminal) WriteTextf

func (i *WebSocketTerminal) WriteTextf(format string, a ...any)

func (*WebSocketTerminal) WriteTextln

func (i *WebSocketTerminal) WriteTextln(format string, a ...any)

func (*WebSocketTerminal) WriteTo

func (i *WebSocketTerminal) WriteTo(r io.Reader) (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳