network

package
v0.0.0-...-1a2806f Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2022 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Agent

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

Agent base agent struct

func (*Agent) Close

func (a *Agent) Close()

Close agent close

func (*Agent) Destroy

func (a *Agent) Destroy()

Destroy agent destory

func (*Agent) GetAdapter

func (a *Agent) GetAdapter() IAgentAdapter

GetAdapter get agent adapter

func (*Agent) IsAuth

func (a *Agent) IsAuth() bool

IsAuth if set token return true else return false

func (*Agent) LocalAddr

func (a *Agent) LocalAddr() net.Addr

LocalAddr get local addr

func (*Agent) OnClose

func (a *Agent) OnClose()

OnClose agent close

func (*Agent) RemoteAddr

func (a *Agent) RemoteAddr() net.Addr

RemoteAddr get remote addr

func (*Agent) Run

func (a *Agent) Run()

Run agent start run usage func (a *Agent) Run (

 for {
	data, err := a.ReadMessage()
	if err != nil {
		log.Debug("read message: %v", err)
		break
	}
	out := make(map[string]interface{})
	if err := a.Codec().Unmarshal(data, &out, nil); err == nil {
		log.Info("receive message %v", out)
		out["seq"] = out["seq"].(float64) + 1
	} else {
		log.Error(err)
	}
	a.WriteMessage(out)
}

}

func (*Agent) SendMessage

func (a *Agent) SendMessage(payload []byte) error

SendMessage send message to conn

func (*Agent) SetToken

func (a *Agent) SetToken(token string)

SetToken set token

func (*Agent) SetUID

func (a *Agent) SetUID(uid uint64)

SetUID set agent id

func (*Agent) Token

func (a *Agent) Token() string

Token get token

func (*Agent) UID

func (a *Agent) UID() uint64

UID get agent id

type AgentAdapter

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

AgentAdapter agent adapter

func (*AgentAdapter) Codec

func (a *AgentAdapter) Codec() codec.Codec

Codec get codec

func (*AgentAdapter) Conn

func (a *AgentAdapter) Conn() IConn

Conn get conn

func (*AgentAdapter) GenID

func (a *AgentAdapter) GenID() uint32

ReqID get message gen id

func (*AgentAdapter) GetSequenceID

func (a *AgentAdapter) GetSequenceID() uint32

GetSequenceID get inc id

func (*AgentAdapter) ReadMessage

func (a *AgentAdapter) ReadMessage() (interface{}, error)

ReadMessage goroutine not safe

func (*AgentAdapter) SetCodec

func (a *AgentAdapter) SetCodec(c codec.Codec)

SetCodec set codec

func (*AgentAdapter) SetConn

func (a *AgentAdapter) SetConn(conn IConn)

SetConn set conn

func (*AgentAdapter) Setup

func (a *AgentAdapter) Setup(conn IConn, codec codec.Codec)

Setup AgentAdapter

func (*AgentAdapter) WriteMessage

func (a *AgentAdapter) WriteMessage(payload interface{}) error

WriteMessage to connection

type AgentCloseFunc

type AgentCloseFunc func(IAgent)

AgentCloseFunc close agent func

type AgentCreateFunc

type AgentCreateFunc func(conn IConn, id uint64, token string) IAgent

AgentCreateFunc create agent func

type AgentManager

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

AgentManager manager agent

func GetInstance

func GetInstance() *AgentManager

GetInstance agent manager instance

func (*AgentManager) AddAgent

func (am *AgentManager) AddAgent(a IAgent)

AddAgent add agent to manager

func (*AgentManager) GetAuthAgent

func (am *AgentManager) GetAuthAgent(uid uint64) (IAgent, bool)

GetAuthAgent get auth agent,if exist return agent and true,else return false

func (*AgentManager) RemoveAgent

func (am *AgentManager) RemoveAgent(a IAgent)

RemoveAgent remove agent from manager

type IAgent

type IAgent interface {
	Run()
	OnClose()
	LocalAddr() net.Addr
	RemoteAddr() net.Addr
	Close()
	Destroy()
	UID() uint64
	SetUID(uint64)
	Token() string
	SetToken(string)
	IsAuth() bool
	GetAdapter() IAgentAdapter
	SendMessage(payload []byte) error
}

IAgent agent interface define

func NewAgent

func NewAgent(adapter IAgentAdapter, uid uint64, token string) IAgent

NewAgent create new agent

type IAgentAdapter

type IAgentAdapter interface {
	//Setup AgentAdapter
	Setup(conn IConn, codec codec.Codec)
	//ReceiveMessage process request and notify message
	ReceiveMessage(payload interface{}) error

	//WriteMessage to connection
	WriteMessage(payload interface{}) error
	//ReadMessage goroutine not safe
	ReadMessage() (interface{}, error)
	// Codec get codec
	Codec() codec.Codec
	//SetCodec set codec
	SetCodec(c codec.Codec)
	//Conn get conn
	Conn() IConn
	// SetConn set conn
	SetConn(conn IConn)
	//GetSequence get inc id
	GetSequenceID() uint32
	//OnClose agent close and clear
	OnClose()
	//GenID gen inc id
	GenID() uint32
}

IAgentAdapter agent adapter interface

type IClient

type IClient interface {
	Run()
	Close()
}

IClient network client interface

type IConn

type IConn interface {
	//ReadMessage read message/[]byte from conn
	ReadMessage() (interface{}, error)
	//WriteMessage write message/[]byte to conn
	WriteMessage(args ...interface{}) error
	//LocalAddr get local addr
	LocalAddr() net.Addr
	//RemoteAddr get remote addr
	RemoteAddr() net.Addr
	//Close conn
	Close()
	//Destory conn
	Destroy()
}

IConn define network conn interface

type IServer

type IServer interface {
	ListenAndServe()
	Close()
}

IServer network server interface

Directories

Path Synopsis
raw

Jump to

Keyboard shortcuts

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