-
Notifications
You must be signed in to change notification settings - Fork 0
0726扒客户端原代码(1)
ziyouzy edited this page Jul 26, 2020
·
1 revision
而Login则不同,函数自身虽然也会销毁(但却没有,后边有个for循环阻塞住了),同时也将Conn传入了线程函数go serverProcessMes(conn)中,于是就算最后他自身销毁了,Conn也依然存在
tf := &utils.Transfer{
Conn: conn,
}
for {
fmt.Println("客户端正在等待读取服务器发送的消息")
mes, err := tf.ReadPkg()
if err != nil {
fmt.Println("tf.ReadPkg err=", err)
return
}
}
switch mes.Type {
case message.NotifyUserStatusMesType : // 有人上线了
//1. 取出.NotifyUserStatusMes
var notifyUserStatusMes message.NotifyUserStatusMes
json.Unmarshal([]byte(mes.Data), ¬ifyUserStatusMes)
//2. 把这个用户的信息,状态保存到客户map[int]User中
updateUserStatus(¬ifyUserStatusMes)
//处理
case message.SmsMesType : //有人群发消息
outputGroupMes(&mes)
default :
fmt.Println("服务器端返回了未知的消息类型")
}