tcp

package
v1.0.21 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2026 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BytesMessage int = 0
	TextMessage  int = 1
	ACKMessage   int = 13
	CloseMessage int = 15
	ErrorMessage int = 17
	Heartbeat    int = 19
	RequestVote  int = 21
	Method       int = 23
)
View Source
const (
	PingMehtod string = "Tcp.Ping"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Balancer

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

type Client added in v1.0.15

type Client struct {
	CreatedAt  time.Time `json:"created_at"`
	ID         string    `json:"id"`
	Addr       string    `json:"addr"`
	LocalAddr  string    `json:"local_addr"`
	RemoteAddr string    `json:"remote_addr"`
	Status     Status    `json:"status"`
	Ctx        et.Json   `json:"-"`
	// contains filtered or unexported fields
}

func NewClient added in v1.0.15

func NewClient(addr string) *Client

* * NewClient * @param addr string * @return *Client, error *

func (*Client) Close added in v1.0.15

func (s *Client) Close() error

* * Close * @return error *

func (*Client) Connect added in v1.0.15

func (s *Client) Connect() error

* * Connect *

func (*Client) OnConnect added in v1.0.15

func (s *Client) OnConnect(fn func(*Client))

* * OnConnect * @param fn func(*Client) *

func (*Client) OnDisconnect added in v1.0.15

func (s *Client) OnDisconnect(fn func(*Client))

* * OnDisconnect * @param fn func(*Client) *

func (*Client) OnError added in v1.0.15

func (s *Client) OnError(fn func(*Client, error))

* * OnError * @param fn func(*Client, error) *

func (*Client) OnInbound added in v1.0.15

func (s *Client) OnInbound(fn func(*Client, *Message))

* * OnInbound * @param fn func(*Client, *Message) *

func (*Client) OnOutbound added in v1.0.15

func (s *Client) OnOutbound(fn func(*Client, []byte))

* * OnOutbound * @param fn func(*Client, []byte) *

func (*Client) Request added in v1.0.15

func (s *Client) Request(method string, args ...any) *Response

* * Request * @param method string, args ...any * @return *Response *

func (*Client) Send added in v1.0.15

func (s *Client) Send(msg *Message) error

* * Send * @param tp int, message any * @return error *

func (*Client) Start added in v1.0.15

func (s *Client) Start() error

* * Start *

func (*Client) ToJson added in v1.0.15

func (s *Client) ToJson() et.Json

* * ToJson * @return et.Json *

type Config added in v1.0.15

type Config struct {
	Nodes []string `json:"nodes"`
	// contains filtered or unexported fields
}

type Console added in v1.0.15

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

type HandlerFunc added in v1.0.15

type HandlerFunc func(request *Message) *Response

type HeartbeatArgs added in v1.0.15

type HeartbeatArgs struct {
	Term     int
	LeaderID string
}

type HeartbeatReply added in v1.0.15

type HeartbeatReply struct {
	Term int
	Ok   bool
}

type Message added in v1.0.15

type Message struct {
	ID         string `json:"id"`
	Type       int    `json:"type"`
	Method     string `json:"method"`
	Payload    []byte `json:"payload"`
	Error      string `json:"error"`
	Args       []any  `json:"args"`
	IsResponse bool   `json:"is_response"`
}

func NewMessage added in v1.0.15

func NewMessage(tp int, message any) (*Message, error)

* * NewMessage *

func ToMessage added in v1.0.15

func ToMessage(bt []byte) (*Message, error)

* * ToMessage * @param bt []byte * @return Message, error *

func (*Message) Get added in v1.0.15

func (s *Message) Get(dest any) error

* * Get * @return any, error *

func (*Message) GetArgs added in v1.0.15

func (s *Message) GetArgs(dest ...any) error

* * AnyGet: Gets a value from an array * @param args []any, dest ...any * @return error *

func (*Message) Response added in v1.0.15

func (s *Message) Response() (*Response, error)

* * Response * @return *Response *

func (*Message) ToJson added in v1.0.15

func (s *Message) ToJson() et.Json

* * ToJson * @return et.Json *

type Mode

type Mode int
const (
	Follower Mode = iota
	Candidate
	Leader
	Proxy
)

type Msg added in v1.0.15

type Msg struct {
	To  *Client  `json:"to"`
	Msg *Message `json:"msg"`
}

func (*Msg) Get added in v1.0.15

func (s *Msg) Get(dest any) error

* * Get * @param dest any * @return error *

func (*Msg) ID added in v1.0.15

func (s *Msg) ID() string

* * ID * @return string *

type Node

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

func NewNode added in v1.0.15

func NewNode(port int) *Node

* * NewNode * @param port int * @return *Node *

func (*Node) AddNode added in v1.0.15

func (s *Node) AddNode(addr string)

* * AddNode * @param addr string *

func (*Node) Broadcast added in v1.0.15

func (s *Node) Broadcast(destination []string, tp int, message any)

* * Broadcast * @param destination []string * @param msg []byte *

func (*Node) Close added in v1.0.15

func (s *Node) Close()

* * Close *

func (*Node) Error added in v1.0.15

func (s *Node) Error(c *Client, err error) error

* * Error * @param c *Client, err error * @return error *

func (*Node) GetMethod added in v1.0.15

func (s *Node) GetMethod() et.Json

* * GetMethod * @return map[string]map[string]*Mtd *

func (*Node) GetPeers added in v1.0.15

func (s *Node) GetPeers() []*Client

* * GetPeers * @return []*Client *

func (*Node) Mount added in v1.0.15

func (s *Node) Mount(service Service) error

* * Mount * @param services any *

func (*Node) Next added in v1.0.15

func (s *Node) Next() *Client

* * Next * @return *Client *

func (*Node) OnBecomeLeader added in v1.0.15

func (s *Node) OnBecomeLeader(fn func(*Node))

* * OnBecomeLeader * @param fn func(*Node) *

func (*Node) OnChangeLeader added in v1.0.15

func (s *Node) OnChangeLeader(fn func(*Node))

* * OnChangeLeader * @param fn func(*Node) *

func (*Node) OnConnect added in v1.0.15

func (s *Node) OnConnect(fn func(*Client))

* * OnConnect * @param fn func(*Client) *

func (*Node) OnDisconnect added in v1.0.15

func (s *Node) OnDisconnect(fn func(*Client))

* * OnDisconnect * @param fn func(*Client) *

func (*Node) OnError added in v1.0.15

func (s *Node) OnError(fn func(*Client, error))

* * OnError * @param fn func(*Client, error) *

func (*Node) OnInbox added in v1.0.15

func (s *Node) OnInbox(fn func(*Msg))

* * OnInbox * @param fn func(*Msg) *

func (*Node) OnSend added in v1.0.15

func (s *Node) OnSend(fn func(*Msg))

* * OnSend * @param fn func(*Msg) *

func (*Node) RemoveNode added in v1.0.15

func (s *Node) RemoveNode(addr string)

* * RemoveNode * @param addr string *

func (*Node) Request added in v1.0.15

func (s *Node) Request(to *Client, method string, args ...any) *Response

* * Request * @param to *Client, method string, args ...any * @return *Response *

func (*Node) ResponseError added in v1.0.15

func (s *Node) ResponseError(msg *Msg, err error) error

* * ResponseError * @param to *Client, id string, err error * @return error *

func (*Node) Send added in v1.0.15

func (s *Node) Send(to *Client, tp int, message any) error

* * Send * @param to *Client, tp int, message any * @return error *

func (*Node) SendError added in v1.0.15

func (s *Node) SendError(to *Client, err error) error

* * SendError * @param to *Client, err error * @return error *

func (*Node) Start added in v1.0.15

func (s *Node) Start() (err error)

* * Start * @return error *

type Raft added in v1.0.15

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

func (*Raft) LeaderID added in v1.0.15

func (s *Raft) LeaderID() (leader string, imLeader bool)

* * LeaderID * @return string, bool *

type RequestVoteArgs added in v1.0.15

type RequestVoteArgs struct {
	Term        int
	CandidateID string
}

type RequestVoteReply added in v1.0.15

type RequestVoteReply struct {
	Term        int
	VoteGranted bool
}

type Response added in v1.0.15

type Response struct {
	Response []any `json:"response"`
	Error    error `json:"error"`
}

func TcpError added in v1.0.15

func TcpError(msg any) *Response

* * TcpError * @param msg any * @return *Response *

func TcpResponse added in v1.0.15

func TcpResponse(res ...any) *Response

* * TcpResponse * @param res ...any * @return *Response *

func (*Response) Get added in v1.0.15

func (s *Response) Get(dest ...any) error

* * Get * @param dest ...any * @return error *

func (*Response) ToJson added in v1.0.15

func (s *Response) ToJson() (et.Json, error)

* * ToJson * @return et.Json, error *

func (*Response) ToString added in v1.0.15

func (s *Response) ToString() string

* * ToString * @return string *

type ResponseBool added in v1.0.15

type ResponseBool struct {
	Ok    bool
	Error error
}

type Service added in v1.0.15

type Service interface {
	Execute(name string, request *Message) *Response
}

type Status added in v1.0.15

type Status string
const (
	Pending      Status = "pending"
	Connected    Status = "connected"
	Disconnected Status = "disconnected"
)

type Tcp added in v1.0.15

type Tcp struct {
	Ping HandlerFunc
	// contains filtered or unexported fields
}

func (*Tcp) Execute added in v1.0.15

func (s *Tcp) Execute(name string, request *Message) *Response

* * Execute: Executes a method * @param name string, request *Message * @return *tcp.Response *

Jump to

Keyboard shortcuts

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