func (this *MsgServer) DoRequestOnlineUsers(msg *msgcmd.Cmd, user *common.UserInfo) { //转发Client的请求给WS msg.ChangeCmdMid(msgcmd.MCMD_M2W_REQUEST_ONLINEUSERS) msg.AddArg(user.Name) if err := this.wsSession.Send(msg); err != nil { println("Msg Server Error: 转发请求在线用户列表消息 失败. ", err.Error()) logFile.Printf("Msg Server Error: 转发请求在线用户列表消息 失败. ", err.Error()) } }
func (this *MsgServer) DoLogin(msg *msgcmd.Cmd, user *common.UserInfo) { //转发登陆消息给 WS //重新封装消息 msg.ChangeCmdMid(msgcmd.MCMD_M2W_LOGIN) msg.AddArg(user.Name) //添加临时用户名 if err := this.wsSession.Send(msg); err != nil { println("Msg Server Error: 发送注册信息 失败. ", err.Error()) logFile.Printf("Msg Server Error: 发送注册信息 失败. ", err.Error()) return } }
func (this *MsgServer) HandleReqOnlineUsers(msg *msgcmd.Cmd) { //根据回馈信息的第一个参数,查找那个用户的信息 user := this.FindUser(msg.Args[0]) if user == nil { println("Msg Server Error: 查找指定用户时 失败. %s", msg.Args[0]) logFile.Printf("Msg Server Error: 查找指定用户时 失败. %s", msg.Args[0]) return } //给Client返回结果 msg.ChangeCmdMid(msgcmd.MCMD_M2C_RESPONSE_ONLINEUSERS) //通知对应的Client,结果信息 if err := user.Session.Send(msg); err != nil { println("Msg Server Error: 发送在线用户列表响应 失败. %s", msg.Args[3]) logFile.Printf("Msg Server Error: 发送在线用户列表响应 失败. %s", msg.Args[3]) } }
func (this *MsgServer) BroadCastToAllUser(msg *msgcmd.Cmd) { msg.ChangeCmdMid(msgcmd.MCMD_M2C_BROADCAST) userlist := this.userlist.CopyData() for _, value := range userlist { if user, ok := value.(*common.UserInfo); ok { if user.State == 1 { if err := user.Session.Send(msg); err != nil { println("Msg Server Error: 广播信息给所有用户 失败. ", err.Error()) logFile.Printf("Msg Server Error: 广播信息给所有用户 失败. ", err.Error()) } } else { println("有用户未在线:", user.Name) } } else { println("类型断言失败!") } } }