logic

package
v0.0.0-...-f2ed81d Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2021 License: MIT Imports: 17 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),
	checkUserCanEnterChannel: make(chan bool),

	requestUserChannel: make(chan struct{}),
	usersChannel:       make(chan []*User),
}

Broadcaster 广播

View Source
var System = &User{}

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

Functions

func FilterSensitive

func FilterSensitive(content string) string

FilterSensitive replace sensitive words with **

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

	// @ function
	Ats []string `json:"ats"`
}

Message 消息结构体

func NewErrorMessage

func NewErrorMessage(content string) *Message

NewErrorMessage error

func NewMessage

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

NewMessage gen a new message

func NewUserEnterMessage

func NewUserEnterMessage(user *User) *Message

NewUserEnterMessage enter

func NewUserLeaveMessage

func NewUserLeaveMessage(user *User) *Message

NewUserLeaveMessage leave

func NewWelcomeMessage

func NewWelcomeMessage(user *User) *Message

NewWelcomeMessage welcome

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
}

User struct

func NewUser

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

NewUser 新建用户

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)

SendMessage 发送消息

Jump to

Keyboard shortcuts

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