logic

package
v0.0.0-...-a2925a1 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2021 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MsgTypeNormal    = iota // 普通 用户消息
	MsgTypeWelcome          // 当前用户欢迎消息
	MsgTypeUserEnter        // 用户进入
	MsgTypeUserLeave        // 用户退出
	MsgTypeError            // 错误消息
)

Variables

View Source
var Broadcaster = &broadcaster{
	users: make(map[string]*User),

	enteringChannel: make(chan *User),
	leavingChannel:  make(chan *User),
	messageChannel:  make(chan *Message, global.MessageQueueLen),

	checkUserChannel:      make(chan string),
	checkUserCanInChannel: make(chan bool),

	requestUsersChannel: make(chan struct{}),
	usersChannel:        make(chan []*User),
}
View Source
var OfflineProcessor = newOfflineProcessor()
View Source
var System = &User{}

System 系统用户,代表是系统主动发送的消息.

Functions

func FilterSensitive

func FilterSensitive(content string) string

Types

type Message

type Message struct {
	// 哪个用户发送的消息
	User    *User     `json:"user"`
	Type    int       `json:"type"`
	Content string    `json:"content"`
	MsgTime time.Time `json:"msg_time"`

	ClientSendTime time.Time `json:"client_send_time"`

	// 消息 @ 了谁
	Ats []string `json:"ats"`
}

Message 给用户发送的消息.

func NewErrorMessage

func NewErrorMessage(content string) *Message

func NewMessage

func NewMessage(user *User, content, clientTime string) *Message

func NewUserEnterMessage

func NewUserEnterMessage(user *User) *Message

func NewUserLeaveMessage

func NewUserLeaveMessage(user *User) *Message

func NewWelcomeMessage

func NewWelcomeMessage(user *User) *Message

type User

type User struct {
	UID            int           `json:"uid"`
	NickName       string        `json:"nickname"`
	EnterAt        time.Time     `json:"enter_at"`
	Addr           string        `json:"addr"`
	MessageChannel chan *Message `json:"-"`
	Token          string        `json:"token"`
	// contains filtered or unexported fields
}

func NewUser

func NewUser(conn *websocket.Conn, token, nickname, addr string) *User

func (*User) CloseMessageChannel

func (u *User) CloseMessageChannel()

CloseMessageChannel 避免 goroutine 泄露

func (*User) ReceiveMessage

func (u *User) ReceiveMessage(ctx context.Context) error

func (*User) SendMessage

func (u *User) SendMessage(ctx context.Context)

Jump to

Keyboard shortcuts

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