IM-System版本0.5提供查询查询在线用户列表功能
This commit is contained in:
parent
a31fda099c
commit
cce1bb6d1d
@ -1,6 +1,9 @@
|
||||
package main
|
||||
|
||||
import "net"
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
Name string
|
||||
@ -45,9 +48,25 @@ func (user *User) Offline() {
|
||||
user.server.BroadCast(user, "下线了")
|
||||
}
|
||||
|
||||
func (user *User) SendMsg(msg string) {
|
||||
user.conn.Write([]byte(msg))
|
||||
}
|
||||
|
||||
// User类的成员方法:处理用户消息
|
||||
func (user *User) DoMessage(msg string) {
|
||||
user.server.BroadCast(user, msg)
|
||||
// 约定查询在线用户指令who
|
||||
if msg == "who" {
|
||||
// 查询当前在线用户列表
|
||||
user.server.mapLock.Lock()
|
||||
for _, onlineuser := range user.server.OnlineMap {
|
||||
onlineMsg := fmt.Sprintf("[%s]%s:在线\n", onlineuser.Addr, onlineuser.Name)
|
||||
// 只向当前这个user发送消息
|
||||
user.SendMsg(onlineMsg)
|
||||
}
|
||||
user.server.mapLock.Unlock()
|
||||
} else {
|
||||
user.server.BroadCast(user, msg)
|
||||
}
|
||||
}
|
||||
|
||||
// User类的成员方法: 监听消息
|
||||
|
Loading…
Reference in New Issue
Block a user