コード例 #1
0
ファイル: model.go プロジェクト: lkj01010/chesssrv
func (m *model) handleInfo(content string) (resp string, err error) {
	args := &dao.Args{Id: m.id}
	log.Debugf("handleInfo args=%+v", args)
	var reply dao.User_InfoReply
	if err = m.dao.Call("User.GetInfo", args, &reply); err != nil {
		return
	}
	log.Debugf("handleInfo, reply=%+v", reply)
	resp = com.MakeMsgString(com.Cmd_Ag_InfoResp, reply.Code, reply.Info)
	return
}
コード例 #2
0
ファイル: wswrap.go プロジェクト: lkj01010/chesssrv
func (w *WsClient) Write(msg string) (err error) {
	err = websocket.Message.Send(w.ws, msg)
	if err != nil {
		log.Errorf("WS-SEND ERROR: %+v", err.Error())
	} else {
		log.Debugf("WS-SEND: %#v\n", msg)
	}
	return
}
コード例 #3
0
ファイル: wswrap.go プロジェクト: lkj01010/chesssrv
func (w *WsClient) Read(msg *string) (err error) {
	err = websocket.Message.Receive(w.ws, msg)
	if err != nil {
		log.Errorf("WS-RECV ERROR: %+v", err.Error())
	} else {
		log.Debugf("WS-RECV: %#v\n", *msg)
	}
	return
}
コード例 #4
0
ファイル: user.go プロジェクト: lkj01010/chesssrv
func (u *User) Auth(args *User_AuthArgs, reply *User_AuthReply) (err error) {
	accountkey := k_account_user_ + args.Account
	//	exists, _ := redis.Bool(u.c.Do("EXISTS", accountkey))

	var id string
	log.Debugf("Auth:get %+v", accountkey)
	id, _ = redis.String(u.c.Do("GET", accountkey))
	// id may be ""
	psw, _ := redis.String(u.c.Do("HGET", k_user_+id, k_psw))
	//	if id == "" {
	//		reply.Code = com.E_AgentAccountNotExist
	//	}else{
	//		reply.Code = com.E_Success
	//	}

	log.Debugf("Auth:id=%+v psw=%+v", id, psw)
	if id == "" || psw == "" {
		reply.Code = com.E_AgentAccountNotExist
	} else {
		if psw == args.Psw {
			reply.Code = com.E_Success
			reply.Id = id
		} else {
			reply.Code = com.E_AgentPasswordIncorrect
		}
	}

	//	if exists == false {
	//		reply.Code = com.E_AgentAccountNotExist
	//		log.Info("E_LoginAccountNotExist")
	//	}else {
	//		id, _ := redis.String(u.c.Do("HGET", accountkey, k_id))
	//		//		fw.PrintType(id, "id")
	//		pswvalue, _ := redis.String(u.c.Do("HGET", accountkey, k_psw))
	//		if pswvalue == args.Psw {
	//			reply.LoginKey = u.parent.Game.genLoginKey(id)
	//			reply.Code = com.E_Success
	//		}else {
	//			reply.Code = com.E_AgentPasswordIncorrect
	//			log.Info("E_AgentPasswordIncorrect")
	//		}
	//	}
	return
}
コード例 #5
0
ファイル: game.go プロジェクト: lkj01010/chesssrv
func (g *Game) genLoginKey(id string) (key string) {
	log.Infof("game:genLoginKey, g=%+v", g)
	key = strconv.Itoa(fw.FastRand())
	log.Debugf("%+v, %+v", g, g.c)
	_, err := g.c.Do("HSET", LoginkeyKey, id, key)
	if err != nil {
		log.Error(err.Error())
	}
	return
}
コード例 #6
0
ファイル: model.go プロジェクト: lkj01010/chesssrv
func (m *model) handleRegister(content string) (resp string, err error) {
	//	daocli.
	var req RegisterReq
	if err = json.Unmarshal([]byte(content), &req); err != nil {
		log.Error("content=", content, ", err: ", err.Error())
		return
	}
	args := &dao.User_RegisterArgs{req.Account, req.Psw}
	var reply dao.Reply
	log.Debugf("req : %#v", req)
	//	if err = h.dc.UserRegister(&args, &reply); err != nil {
	if err = m.dao.Call("User.Register", args, &reply); err != nil {
		return
	}
	log.Infof("User.Register %+v -> %+v", args, reply)
	resp = com.MakeMsgString(com.Cmd_Ag_RegisterResp, reply.Code, nil)
	return
}
コード例 #7
0
ファイル: gamesrv.go プロジェクト: lkj01010/chesssrv
func main() {
	var agent *fw.Agent
	serve := func(ws *websocket.Conn) {
		// only ONE agent server allowed to connect
		log.Debugf("new comes, agent=%+v", agent)
		if agent == nil {
			agent = fw.NewAgent(game.NewModel(), fw.NewWsReadWriter(ws), 1)
			if err := agent.Serve(); err != nil {
				log.Error(err.Error())
			}
		} else {
			log.Warning("already connected by agentsrv, cannont serve more")
		}
		// release
		agent = nil
	}

	http.Handle("/", websocket.Handler(serve))
	log.Debug("game server start on:", cfg.GameAddr())
	http.ListenAndServe(cfg.GameAddr(), nil)

}
コード例 #8
0
ファイル: test_couchbase.go プロジェクト: lkj01010/chesssrv
func testSet() {
	buckValue := `this is the value`

	// 同时写会出问题..

	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//		for i := 0; i < N; i++ {
	//			if _, err := bucket1.Upsert(string("*****@*****.**"), buckValue, 0); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//			}
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()
	//
	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//		for i := 0; i < N; i++ {
	//			if _, err := bucket1.Upsert(string("*****@*****.**"), buckValue, 0); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//			}
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()
	//
	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//		for i := 0; i < N; i++ {
	//			if _, err := bucket1.Upsert(string("*****@*****.**"), buckValue, 0); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//			}
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()
	//
	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//		for i := 0; i < N; i++ {
	//			if _, err := bucket1.Upsert(string("*****@*****.**"), buckValue, 0); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//			}
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()

	cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	log.Debugf("connect e=%+v", e)
	if e != nil {
		fmt.Errorf("%+v", e.Error())
	}
	bucket1, e := cluster1.OpenBucket("travel-sample", "")

	N := 1
	t1 := time.Now()

	for i := 0; i < N; i++ {
		if _, err := bucket1.Upsert(string("*****@*****.**"), buckValue, 0); err != nil {
			fmt.Print("bucket get err=", err.Error())
			return
		} else {
		}
	}
	t2 := time.Now()
	d := t2.Sub(t1)

	log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
}
コード例 #9
0
ファイル: test_couchbase.go プロジェクト: lkj01010/chesssrv
func testGet() {
	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//		for i := 0; i < N; i++ {
	//			var curUser User
	//			if _, err := bucket1.Get("*****@*****.**", &curUser); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//				//			fmt.Printf("%+v", curUser)
	//			}
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()
	//
	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//		for i := 0; i < N; i++ {
	//			var curUser User
	//			if _, err := bucket1.Get("*****@*****.**", &curUser); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//				//			fmt.Printf("%+v", curUser)
	//			}
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()
	//
	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//		for i := 0; i < N; i++ {
	//			var curUser User
	//			if _, err := bucket1.Get("*****@*****.**", &curUser); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//				//			fmt.Printf("%+v", curUser)
	//			}
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()
	//
	//	go func() {
	//		cluster1, e := gocb.Connect("couchbase://127.0.0.1")
	//		log.Debugf("connect e=%+v", e)
	//		if e != nil {
	//			fmt.Errorf("%+v", e.Error())
	//		}
	//		bucket1, e := cluster1.OpenBucket("travel-sample", "")
	//
	//
	//		N := 50000
	//		t1 := time.Now()
	//
	//
	//		for i := 0; i < N; i++ {
	//			var curUser User
	//			if _, err := bucket1.Get("*****@*****.**", &curUser); err != nil {
	//				fmt.Print("bucket get err=", err.Error())
	//				return
	//			}else {
	//				//			fmt.Printf("%+v", curUser)
	//			}
	//
	//		}
	//		t2 := time.Now()
	//		d := t2.Sub(t1)
	//
	//		log.Infof("BenchmarkGo go, %+v times in %+v", N, d)
	//
	//	}()

	cluster, e := gocb.Connect("couchbase://127.0.0.1")
	//	cluster, e := gocb.Connect("couchbase://42.62.101.136")
	log.Debugf("connect e=%+v", e)
	if e != nil {
		fmt.Errorf("%+v", e.Error())
	}
	bucket, e = cluster.OpenBucket("travel-sample", "")
	if e != nil {
		fmt.Errorf("OpenBucket ERROR=%+v", e.Error())
	}
	//
	//	myQuery := gocb.NewN1qlQuery("select * from `travel-sample`")
	myQuery := gocb.NewN1qlQuery("select * from `travel-sample` where airportname IS NOT NULL limit 1")
	N := 100
	t1 := time.Now()

	//	for i := 0; i < N; i++ {

	rows, err := bucket.ExecuteN1qlQuery(myQuery, nil)
	if err != nil {
		fmt.Println("ERROR EXECUTING N1QL QUERY:", err)
	}
	var airports []AirportIntermediary
	var row AirportIntermediary // 这里的查询结果要严格对应定义的格式,否则转出来的struct的内部值都是空值
	log.Infof("rows=%#v", rows)
	for rows.Next(&row) {
		airports = append(airports, row)
		log.Debugf("row=%+v", row)
	}
	log.Infof("airport = %+v", airports)

	if err := rows.Close(); err != nil {
		fmt.Printf("N1QL query error: %s\n", err)
	}

	//	}
	t2 := time.Now()
	d := t2.Sub(t1)

	log.Infof("BenchmarkGo, %+v times in %+v", N, d)
}
コード例 #10
0
ファイル: card.go プロジェクト: lkj01010/chesssrv
func DealCards(cards []card) {
	for i, _ := range cards {
		cards[i] = cardPool[fw.Randn(54)]
	}
	log.Debugf("cards=%+v", cards)
}