messages

package
v1.3.5 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2022 License: MIT Imports: 5 Imported by: 6

Documentation

Index

Constants

View Source
const (
	ActionHello               Action = "hello"
	ActionHeartbeat                  = "heartbeat"
	ActionNotifyUnknownAction        = "notify.unknown.action"

	ActionChatMessage       = "message.chat"
	ActionChatMessageResend = "message.chat.resend"
	ActionGroupMessage      = "message.group"
	ActionMessageFailed     = "message.failed.send"
	ActionClientCustom      = "message.cli"

	ActionNotifyNeedAuth      = "notify.auth"
	ActionNotifyKickOut       = "notify.kickout"
	ActionNotifyNewContact    = "notify.contact"
	ActionNotifyGroup         = "notify.group"
	ActionNotifyAccountLogin  = "notify.login"
	ActionNotifyAccountLogout = "notify.logout"
	ActionNotifyError         = "notify.error"

	ActionAckRequest  = "ack.request"
	ActionAckGroupMsg = "ack.group.msg"
	ActionAckMessage  = "ack.message"
	ActionAckNotify   = "ack.notify"

	ActionApiAuth    = "api.auth"
	ActionApiFailed  = "api.failed"
	ActionApiSuccess = "api.success"

	ActionInternalOnline  = "internal.online"
	ActionInternalOffline = "internal.offline"
)

Variables

View Source
var DefaultCodec = JsonCodec
View Source
var JsonCodec = jsonCodec{}
View Source
var ProtoBuffCodec = protobufCodec{}

Functions

func IsDecodeError added in v1.3.1

func IsDecodeError(err error) bool

Types

type AckGroupMessage

type AckGroupMessage struct {
	Gid int64 `json:"gid,omitempty"`
	Mid int64 `json:"mid,omitempty"`
	Seq int64 `json:"seq,omitempty"`
}

AckGroupMessage 发送群消息服务器回执

type AckMessage

type AckMessage struct {
	Mid int64 `json:"mid,omitempty"`
	Seq int64 `json:"seq,omitempty"`
}

AckMessage 服务端通知发送者的服务端收到消息

type AckNotify

type AckNotify struct {
	Mid int64 `json:"mid,omitempty"`
}

AckNotify 服务端下发给发送者的消息送达通知

type AckRequest

type AckRequest struct {
	Seq  int64  `json:"seq,omitempty"`
	Mid  int64  `json:"mid,omitempty"`
	From string `json:"from,omitempty"`
}

AckRequest 接收者回复给服务端确认收到消息

type Action

type Action string

Action is the type of action that is being performed.

func (Action) IsInternal added in v1.2.5

func (a Action) IsInternal() bool

type ChatMessage

type ChatMessage struct {
	Mid     int64  `json:"mid,omitempty"`
	Seq     int64  `json:"seq,omitempty"`
	From    string `json:"from,omitempty"`
	To      string `json:"to,omitempty"`
	Type    int32  `json:"type,omitempty"`
	Content string `json:"content,omitempty"`
	SendAt  int64  `json:"sendAt,omitempty"`
}

ChatMessage chat message in single/group chat

type ClientCustom

type ClientCustom struct {
	Type    string `json:"type,omitempty"`
	Content string `json:"content,omitempty"`
}

ClientCustom client custom message, server does not store to database.

type Codec

type Codec interface {
	Decode(data []byte, i interface{}) error
	Encode(i interface{}) ([]byte, error)
}

type Data

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

Data used to wrap message data. Server received a message, the data type is []byte, it's waiting for deserialize to specified struct. When server push a message to client, the data type is specific struct.

func NewData

func NewData(d interface{}) *Data

func (*Data) Deserialize

func (d *Data) Deserialize(i interface{}) error

func (*Data) MarshalJSON

func (d *Data) MarshalJSON() ([]byte, error)

func (*Data) String added in v1.2.1

func (d *Data) String() string

func (*Data) UnmarshalJSON

func (d *Data) UnmarshalJSON(bytes []byte) error

type GlideMessage

type GlideMessage struct {
	Ver    int64             `json:"ver,omitempty"`
	Seq    int64             `json:"seq,omitempty"`
	Action string            `json:"action"`
	From   string            `json:"from,omitempty"`
	To     string            `json:"to,omitempty"`
	Data   *Data             `json:"data,omitempty"`
	Extra  map[string]string `json:"extra,omitempty"`
}

GlideMessage common data of all message

func NewEmptyMessage

func NewEmptyMessage() *GlideMessage

func NewMessage

func NewMessage(seq int64, action Action, data interface{}) *GlideMessage

func (*GlideMessage) GetAction

func (g *GlideMessage) GetAction() Action

func (*GlideMessage) GetSeq

func (g *GlideMessage) GetSeq() int64

func (*GlideMessage) SetSeq

func (g *GlideMessage) SetSeq(seq int64)

func (*GlideMessage) String added in v1.2.1

func (g *GlideMessage) String() string

type GlideProtocol

type GlideProtocol struct {
}

type Hello added in v1.2.2

type Hello struct {
	ClientVersion string `json:"client_version,omitempty"`
	ClientName    string `json:"client_name,omitempty"`
	ClientType    string `json:"client_type,omitempty"`
}

type ServerHello added in v1.3.3

type ServerHello struct {
	ServerVersion     string   `json:"server_version,omitempty"`
	TempID            string   `json:"temp_id,omitempty"`
	HeartbeatInterval int      `json:"heartbeat_interval,omitempty"`
	Protocols         []string `json:"protocols,omitempty"`
}

Jump to

Keyboard shortcuts

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