messages

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2020 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GateJsonMessageSetMsgHead added in v1.2.3

func GateJsonMessageSetMsgHead(msghead uint32) options

func GateJsonMessageSetMsgMaxLen added in v1.2.3

func GateJsonMessageSetMsgMaxLen(max uint16) options

func JsonMessageSetMsgHead

func JsonMessageSetMsgHead(msghead uint32) options

func JsonMessageSetMsgMaxLen

func JsonMessageSetMsgMaxLen(max uint16) options

Types

type GateJsonMessageHandle added in v1.2.3

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

func (*GateJsonMessageHandle) CheckMaxLenVaild added in v1.2.3

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

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

func (*GateJsonMessageHandle) GetRoute added in v1.2.3

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

按消息拿出消息处理实例

func (*GateJsonMessageHandle) Marshal added in v1.2.3

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

编码

func (*GateJsonMessageHandle) SetRoute added in v1.2.3

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

设置消息路由

func (*GateJsonMessageHandle) Unmarshal added in v1.2.3

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

解码

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 {
	IMessage
	//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 {
	IMessage
	//ws的回调
	WebSocketDirectCall(ws *WebSocketModel)
}

type JsonArray added in v1.2.2

type JsonArray []interface{}

JsonArray JSON数组

func (JsonArray) GetArray added in v1.2.2

func (js JsonArray) GetArray(index int) JsonArray

func (JsonArray) GetIntArray added in v1.2.2

func (js JsonArray) GetIntArray() []int

func (JsonArray) GetMap added in v1.2.2

func (js JsonArray) GetMap(index int) JsonMap

type JsonMap added in v1.2.2

type JsonMap map[string]interface{}

JsonMap 收到的JSON数据

func (JsonMap) GetAction added in v1.2.2

func (js JsonMap) GetAction() uint32

GetAction 消息号

func (JsonMap) GetActionKey added in v1.2.2

func (js JsonMap) GetActionKey() int

GetActionKey int32 //消息序号

func (JsonMap) GetArray added in v1.2.2

func (js JsonMap) GetArray(key string) JsonArray

返回一个JsonArray

func (JsonMap) GetHash added in v1.2.2

func (js JsonMap) GetHash() string

GetHash string //发回给用户信息用的钥匙

func (JsonMap) GetIntArray added in v1.2.2

func (js JsonMap) GetIntArray(key string) []int

返回[]int

func (JsonMap) GetMap added in v1.2.2

func (js JsonMap) GetMap(key string) JsonMap

返回一个JsonMap

func (JsonMap) GetMemberID added in v1.2.2

func (js JsonMap) GetMemberID() int

GetMemberID int32 //用户ID

type JsonMessageHandle

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

func GateJsonMessageHandleNew added in v1.2.3

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

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 `json:"-"`
}

func (*LogicMessage) LogicThreadID

func (msg *LogicMessage) LogicThreadID() int

func (*LogicMessage) MessageHandle added in v1.2.2

func (msg *LogicMessage) MessageHandle()

调用方法

type NsqdMessage

type NsqdMessage struct {
	SendUserID int    `json:"SENDUID"`  //发信息用户ID
	SendSID    string `json:"SENDSID"`  //发信息服务器(回复用的信息)
	ActionID   uint32 `json:"ACTIONID"` //消息号
	Topic      string `json:"TOPIC"`    //目标
}

nsqd消息的基础结构

func (*NsqdMessage) GetAction added in v1.2.2

func (msg *NsqdMessage) GetAction() 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 ScoketMessage added in v1.2.2

type ScoketMessage struct {
	SendUserID int    `json:"SENDUID"`  //发信息用户ID
	SendSID    string `json:"SENDSID"`  //发信息服务器(回复用的信息)
	ActionID   uint32 `json:"ACTIONID"` //消息号
	Topic      string `json:"TOPIC"`    //目标
}

func (*ScoketMessage) GetAction added in v1.2.2

func (msg *ScoketMessage) GetAction() uint32

func (*ScoketMessage) GetSendSID added in v1.2.2

func (msg *ScoketMessage) GetSendSID() string

func (*ScoketMessage) GetSendUserID added in v1.2.2

func (msg *ScoketMessage) GetSendUserID() int

func (*ScoketMessage) GetTopic added in v1.2.2

func (msg *ScoketMessage) GetTopic() string

func (*ScoketMessage) SetSendSID added in v1.2.2

func (msg *ScoketMessage) SetSendSID(sid string)

type SocketModel

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

SocketModel 用户连接对象

type WebMessage added in v1.2.2

type WebMessage struct {
	ActionID uint32 `json:"ACTIONID"`
	MemberID int    `json:"MEMBERID"`
}

func (*WebMessage) GetAction added in v1.2.2

func (msg *WebMessage) GetAction() uint32

func (*WebMessage) HttpDirectCall added in v1.2.2

func (msg *WebMessage) HttpDirectCall(w http.ResponseWriter, req *http.Request)

HTTP的回调

type WebScoketMessage added in v1.2.2

type WebScoketMessage struct {
	ActionID uint32 `json:"ACTIONID"`
	MemberID int    `json:"MEMBERID"`
	Hash     string `json:"HASH"`
}

func (*WebScoketMessage) GetAction added in v1.2.2

func (msg *WebScoketMessage) GetAction() uint32

func (*WebScoketMessage) WebSocketDirectCall added in v1.2.2

func (msg *WebScoketMessage) WebSocketDirectCall(ws *WebSocketModel)

ws的回调

type WebSocketModel

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

WebSocketModel 用户连接对象

func (*WebSocketModel) SendByte added in v1.2.4

func (ws *WebSocketModel) SendByte(data []byte) error

发的是二进制数据

func (*WebSocketModel) SendStr added in v1.2.4

func (ws *WebSocketModel) SendStr(data string) error

发的是字符串

Jump to

Keyboard shortcuts

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