messages

package
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2022 License: MIT Imports: 4 Imported by: 6

Documentation

Index

Constants

View Source
const (
	ActionHello Action = "hello"

	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"
	ActionNotifyUnknownAction = "notify.unknown.action"

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

	ActionHeartbeat  = "heartbeat"
	ActionApiAuth    = "api.auth"
	ActionApiFailed  = "api.failed"
	ActionApiSuccess = "api.success"
)

Variables

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

Functions

This section is empty.

Types

type AckGroupMessage

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

AckGroupMessage 发送群消息服务器回执

type AckMessage

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

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

type AckNotify

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

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

type AckRequest

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

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

type Action

type Action string

type ChatMessage

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

ChatMessage chat message in single/group chat

type ClientCustom

type ClientCustom struct {
	From    int64  `json:"from"`
	To      int64  `json:"to"`
	Type    int32  `json:"type"`
	Content string `json:"content"`
}

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"`

	ClientName string `json:"client_name"`
	ClientType string `json:"client_type"`
}

Jump to

Keyboard shortcuts

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