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 ¶
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 NewMessage ¶
func NewUserEnterMessage ¶
func NewUserLeaveMessage ¶
func NewWelcomeMessage ¶
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 (*User) CloseMessageChannel ¶
func (u *User) CloseMessageChannel()
CloseMessageChannel 避免 goroutine 泄露
func (*User) SendMessage ¶
Click to show internal directories.
Click to hide internal directories.