IM-System版本0.6客户端通过rename指令修改用户名
This commit is contained in:
parent
cce1bb6d1d
commit
9e012b21b7
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
@ -54,9 +55,8 @@ func (user *User) SendMsg(msg string) {
|
|||||||
|
|
||||||
// User类的成员方法:处理用户消息
|
// User类的成员方法:处理用户消息
|
||||||
func (user *User) DoMessage(msg string) {
|
func (user *User) DoMessage(msg string) {
|
||||||
// 约定查询在线用户指令who
|
|
||||||
if msg == "who" {
|
if msg == "who" {
|
||||||
// 查询当前在线用户列表
|
// 约定查询在线用户指令who
|
||||||
user.server.mapLock.Lock()
|
user.server.mapLock.Lock()
|
||||||
for _, onlineuser := range user.server.OnlineMap {
|
for _, onlineuser := range user.server.OnlineMap {
|
||||||
onlineMsg := fmt.Sprintf("[%s]%s:在线\n", onlineuser.Addr, onlineuser.Name)
|
onlineMsg := fmt.Sprintf("[%s]%s:在线\n", onlineuser.Addr, onlineuser.Name)
|
||||||
@ -64,6 +64,24 @@ func (user *User) DoMessage(msg string) {
|
|||||||
user.SendMsg(onlineMsg)
|
user.SendMsg(onlineMsg)
|
||||||
}
|
}
|
||||||
user.server.mapLock.Unlock()
|
user.server.mapLock.Unlock()
|
||||||
|
} else if len(msg) > 7 && msg[:7] == "rename|" {
|
||||||
|
// 约定rename|xx指令为定义我的用户名指令
|
||||||
|
newName := strings.Split(msg, "|")[1]
|
||||||
|
// 查询newName在当前在线列表中是否已经存在
|
||||||
|
_, ok := user.server.OnlineMap[newName]
|
||||||
|
if ok {
|
||||||
|
user.SendMsg(fmt.Sprintf("用户名%s已被占用\n", newName))
|
||||||
|
} else {
|
||||||
|
user.server.mapLock.Lock()
|
||||||
|
delete(user.server.OnlineMap, user.Name)
|
||||||
|
user.server.OnlineMap[newName] = user
|
||||||
|
user.server.mapLock.Unlock()
|
||||||
|
// 向大家广播一下新名字
|
||||||
|
user.server.BroadCast(user, fmt.Sprintf("修改了用户名为%s\n", newName))
|
||||||
|
user.Name = newName
|
||||||
|
// 自本人反馈一下改名成功
|
||||||
|
user.SendMsg(fmt.Sprintf("你已经修改用户名为%s\n", user.Name))
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
user.server.BroadCast(user, msg)
|
user.server.BroadCast(user, msg)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user