messages

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2020 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func JsonMessageSetMsgHead

func JsonMessageSetMsgHead(msghead uint32) options

func JsonMessageSetMsgMaxLen

func JsonMessageSetMsgMaxLen(max uint16) options

Types

type HttpJsonMessageHandle

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

func HttpJsonMessageHandleNew

func HttpJsonMessageHandleNew(opts ...options) (msghandle *HttpJsonMessageHandle)

func (*HttpJsonMessageHandle) CheckMaxLenVaild

func (msghandle *HttpJsonMessageHandle) CheckMaxLenVaild(buff []byte) (msglen uint32, ok bool)

一个消息是否收完了 返回这个消息应该的长度,和是否收完的信息

func (*HttpJsonMessageHandle) GetRoute

func (msghandle *HttpJsonMessageHandle) GetRoute(msgid uint32) (result interface{}, err error)

按消息拿出消息处理实例

func (HttpJsonMessageHandle) Marshal

func (msghandle HttpJsonMessageHandle) Marshal(msgid uint32, data interface{}) ([]byte, error)

编码

func (*HttpJsonMessageHandle) SetRoute

func (msghandle *HttpJsonMessageHandle) SetRoute(msgid uint32, msg interface{})

设置消息路由

func (HttpJsonMessageHandle) Unmarshal

func (msghandle HttpJsonMessageHandle) Unmarshal(buff []byte) (data interface{}, err error)

解码

type IDataBaseMessage

type IDataBaseMessage interface {
	//所在DB协程
	DBThreadID() int
	/*数据表,如果你的表放入时,不是马上保存的,那么后续可以用这个KEY来进行覆盖,
	这样就可以实现多次修改一次保存的功能
	所以这个字段建议是:用户ID+数据表名+数据主键
	*/
	GetDataKey() string

	//调用方法
	SaveDB(conn model.IConnDB) error
}

DataBase的处理接口

type IHttpMessageHandle

type IHttpMessageHandle interface {
	//HTTP的回调
	HttpDirectCall(w http.ResponseWriter, req *http.Request)
}

type ILogicMessage

type ILogicMessage interface {
	//所在协程的KEY
	LogicThreadID() int
	//调用方法
	MessageHandle()
}

LogicMessage 逻辑委托

type IMessage

type IMessage interface {
	GetAction() uint32
}

type IMessageHandle

type IMessageHandle interface {
	//编码
	Marshal(msgid uint32, data interface{}) ([]byte, error)
	//解码
	Unmarshal(buff []byte) (data interface{}, err error)
	//设置消息路由
	SetRoute(msgid uint32, msg interface{})
	//按消息拿出消息处理实例
	GetRoute(msgid uint32) (result interface{}, err error)
	//一个消息是否收完了
	CheckMaxLenVaild(buff []byte) (msglen uint32, ok bool)
}

消息收发接口

type INsqMessageHandle

type INsqMessageHandle interface {
	INsqdResultMessage
	//Nsq的回调
	NsqDirectCall()
}

type INsqdResultMessage

type INsqdResultMessage interface {
	//消息
	IMessage
	//消息来源的用户ID
	GetSendUserID() int
	//消息来源的服务ID
	GetSendSID() string
	//设置来源服务ID
	SetSendSID(sid string)
	//目标服务器ID
	GetTopic() string
}

type ISocketMessageHandle

type ISocketMessageHandle interface {
	ISocketResultMessage
	//socket的回调
	SocketDirectCall(ws *SocketModel)
}

type ISocketResultMessage

type ISocketResultMessage interface {
	//消息
	IMessage
	//消息来源的用户ID
	GetSendUserID() int
	//消息来源的服务ID
	GetSendSID() string
	//设置来源服务ID
	SetSendSID(sid string)
	//目标服务器ID
	GetTopic() string
}

type IWebSocketMessageHandle

type IWebSocketMessageHandle interface {
	//ws的回调
	WebSocketDirectCall(ws *WebSocketModel)
}

type JsonMessageHandle

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

func JsonMessageHandleNew

func JsonMessageHandleNew(opts ...options) (msghandle *JsonMessageHandle)

func (*JsonMessageHandle) CheckMaxLenVaild

func (msghandle *JsonMessageHandle) CheckMaxLenVaild(buff []byte) (msglen uint32, ok bool)

一个消息是否收完了 返回这个消息应该的长度,和是否收完的信息

func (*JsonMessageHandle) GetRoute

func (msghandle *JsonMessageHandle) GetRoute(msgid uint32) (result interface{}, err error)

按消息拿出消息处理实例

func (JsonMessageHandle) Marshal

func (msghandle JsonMessageHandle) Marshal(msgid uint32, data interface{}) ([]byte, error)

编码

func (*JsonMessageHandle) SetRoute

func (msghandle *JsonMessageHandle) SetRoute(msgid uint32, msg interface{})

设置消息路由

func (JsonMessageHandle) Unmarshal

func (msghandle JsonMessageHandle) Unmarshal(buff []byte) (data interface{}, err error)

解码

type LogicMessage

type LogicMessage struct {
	UserID int
}

func (*LogicMessage) LogicThreadID

func (msg *LogicMessage) LogicThreadID() int

type NsqdMessage

type NsqdMessage struct {
	SendUserID int    //发信息用户ID
	SendSID    string //发信息服务器(回复用的信息)
	ActionID   uint32 //消息号
	Topic      string //目标
}

nsqd消息的基础结构

func (*NsqdMessage) GetActionID

func (msg *NsqdMessage) GetActionID() uint32

func (*NsqdMessage) GetSendSID

func (msg *NsqdMessage) GetSendSID() string

func (*NsqdMessage) GetSendUserID

func (msg *NsqdMessage) GetSendUserID() int

func (*NsqdMessage) GetTopic

func (msg *NsqdMessage) GetTopic() string

func (*NsqdMessage) SetSendSID

func (msg *NsqdMessage) SetSendSID(sid string)

type SocketModel

type SocketModel struct {
	Conn     net.Conn                //连接信息
	CloseFun func(skmd *SocketModel) //关闭连接时的方法
	ConInfo  interface{}             //自定义的连接信息,给上层逻辑使用
	KeyID    int                     //用来标记的ID
}

SocketModel 用户连接对象

type WebSocketModel

type WebSocketModel struct {
	*websocket.Conn
	CloseFun func(wsmd *WebSocketModel) //关闭连接时的方法
	ConInfo  interface{}                //自定义的连接信息,给上层逻辑使用
	KeyID    int                        //用来标记的ID
}

WebSocketModel 用户连接对象

Jump to

Keyboard shortcuts

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