impl

package
v0.0.0-...-f0a9cfb Latest Latest
Warning

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

Go to latest
Published: May 27, 2023 License: Apache-2.0 Imports: 6 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewRequest

func NewRequest(msg iface.IMessage, s *melody.Session, m *melody.Melody) iface.IRequest

func NewServer

func NewServer(ctx context.Context) iface.IServer

Types

type Message

type Message struct {
	BizType string //业务消息ID
	Data    []byte //消息的内容
	DataLen uint32 //消息的长度
}

func NewMsg

func NewMsg(bizType string, data []byte) *Message

NewMsg 创建一个Message消息包

func (*Message) GetBizType

func (msg *Message) GetBizType() string

GetBizType 获取消息类型

func (*Message) GetData

func (msg *Message) GetData() []byte

GetData 获取消息内容

func (*Message) GetDataLen

func (msg *Message) GetDataLen() uint32

GetDataLen 获取消息数据段长度

type MsgHandler

type MsgHandler struct {
	Apis           map[string]iface.IRouter //存放每个bizType 所对应的处理方法的map属性
	WorkerPoolSize uint64                   //业务工作Worker池的数量
	TaskQueue      []chan iface.IRequest    //Worker负责取任务的消息队列
}

func NewMsgHandle

func NewMsgHandle(ctx context.Context) *MsgHandler

func (*MsgHandler) AddRouter

func (mh *MsgHandler) AddRouter(ctx context.Context, bizType string, router iface.IRouter)

AddRouter 为消息添加具体的处理逻辑

func (*MsgHandler) DoMsgHandler

func (mh *MsgHandler) DoMsgHandler(ctx context.Context, request iface.IRequest)

DoMsgHandler 马上以非阻塞方式处理消息

func (*MsgHandler) HandleMsg

func (mh *MsgHandler) HandleMsg(ctx context.Context, request iface.IRequest)

func (*MsgHandler) SendMsgToTaskQueue

func (mh *MsgHandler) SendMsgToTaskQueue(request iface.IRequest) (err error)

SendMsgToTaskQueue 将消息交给TaskQueue,由worker进行处理

func (*MsgHandler) StartOneWorker

func (mh *MsgHandler) StartOneWorker(ctx context.Context, workerID int, taskQueue chan iface.IRequest)

StartOneWorker 启动一个Worker工作流程

func (*MsgHandler) StartWorkerPool

func (mh *MsgHandler) StartWorkerPool(ctx context.Context)

StartWorkerPool 启动worker工作池

type Request

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

func (*Request) Get

func (r *Request) Get(key string) (value interface{}, exist bool)

Get returns the value for the given key, ie: (value, true). If the value does not exists it returns (nil, false)

func (*Request) GetBizType

func (r *Request) GetBizType() string

获取请求的消息的ID

func (*Request) GetData

func (r *Request) GetData() []byte

获取请求消息的数据

func (*Request) GetMelody

func (r *Request) GetMelody() *melody.Melody

GetMelody returns melody object

func (*Request) GetSession

func (r *Request) GetSession() *melody.Session

获取请求连接信息

type Server

type Server struct {
	//服务器IP地址
	IP string
	//端口号
	Port int
	//Server的消息管理模块
	MsgHandler iface.IMsgHandler
}

func (*Server) AddRouter

func (s *Server) AddRouter(ctx context.Context, bizType string, router iface.IRouter)

Jump to

Keyboard shortcuts

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