Пример #1
0
func Login(buffer []byte, Conn *net.Conn, User *model.User, userCache *model.UserCache) *model.User {
	confirm := core.Confirm{}
	err := confirm.Decode(buffer)
	if err != nil {
		fmt.Printf("TCPHandle Login Error:%v", err.Error)
		return nil
	}
	if confirm.UserUuid != "" {
		remote := (*Conn).RemoteAddr().String()
		ips := strings.Split(remote, ":")
		ip := net.ParseIP(ips[0])
		User = &model.User{IP: ip, Port: int32(confirm.Port), Uuid: confirm.UserUuid, Conn: Conn}
	}
	if User == nil {
		return nil
	}
	userCache.Add(User)
	return User
}