diff --git a/modules/battle/module_test.go b/modules/battle/module_test.go index b6160342f..5bd02844b 100644 --- a/modules/battle/module_test.go +++ b/modules/battle/module_test.go @@ -17,6 +17,8 @@ import ( "go_dreamfactory/sys/configure" "go_dreamfactory/sys/db" "os" + "os/signal" + "syscall" "testing" "time" @@ -97,7 +99,27 @@ func Test_Comment(t *testing.T) { fmt.Println(err) return } else { - defer connect.Close() + + go func() { + var ( + data []byte + msg *pb.BattleRpcMessage = &pb.BattleRpcMessage{} + err error + ) + locp: + for { + if _, data, err = connect.ReadMessage(); err != nil { + fmt.Println(err) + break locp + } + if err = proto.Unmarshal(data, msg); err != nil { + fmt.Println(err) + break locp + } + fmt.Println(msg) + } + }() + msg := &pb.BattleRpcMessage{ Rid: 1, Method: "test", @@ -105,5 +127,18 @@ func Test_Comment(t *testing.T) { msg.Data, _ = anypb.New(&pb.BattleTestMessage{}) data, _ := proto.Marshal(msg) connect.WriteMessage(websocket.BinaryMessage, data) + //监听外部关闭服务信号 + c := make(chan os.Signal, 1) + //添加进程结束信号 + signal.Notify(c, + os.Interrupt, //退出信号 ctrl+c退出 + syscall.SIGHUP, //终端控制进程结束(终端连接断开) + syscall.SIGINT, //用户发送INTR字符(Ctrl+C)触发 + syscall.SIGTERM, //结束程序(可以被捕获、阻塞或忽略) + syscall.SIGQUIT) //用户发送QUIT字符(Ctrl+/)触发 + select { + case sig := <-c: + fmt.Printf("signal = %v\n", sig) + } } } diff --git a/modules/combat/api_challengereceive.go b/modules/combat/api_challengereceive.go index db62b8ff1..bb92d6547 100644 --- a/modules/combat/api_challengereceive.go +++ b/modules/combat/api_challengereceive.go @@ -58,6 +58,7 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC } this.module.DispenseRes(session, manster.Award, true) + pass = true for _, v := range level.Passdroplist { ispass := false for _, v1 := range info.Passdrop { diff --git a/modules/library/module.go b/modules/library/module.go index e6b0fa62c..73a4ab9e1 100644 --- a/modules/library/module.go +++ b/modules/library/module.go @@ -198,9 +198,16 @@ func (this *Library) AddHeroFetterData(uid, heroConfId string) (code pb.ErrorCod obj.Hero[k] = 1 // 重新计算最低等级 var minLv int32 - for _, v := range obj.Hero { - if minLv < v { - minLv = v + conf := this.configure.GetLibraryFetter(obj.Fid, 1) + list := this.GetHeroFetterList(uid) + for _, v1 := range conf.Hid { + for _, v := range list { + if v.Heroid == v1 { + if minLv < v.Favorlv { + minLv = v.Favorlv + } + break + } } } obj.Fetterlv = minLv @@ -210,7 +217,6 @@ func (this *Library) AddHeroFetterData(uid, heroConfId string) (code pb.ErrorCod mapData["fetterlv"] = obj.Fetterlv this.modelLibrary.modifyLibraryDataByObjId(uid, obj.Id, mapData) rsp.Data = append(rsp.Data, obj) - break } } } diff --git a/stress/robot/robot.go b/stress/robot/robot.go index c13228079..d36e7bc6e 100644 --- a/stress/robot/robot.go +++ b/stress/robot/robot.go @@ -8,8 +8,6 @@ import ( "io" "os" - // zlog "go_dreamfactory/lego/sys/log" - "go_dreamfactory/pb" "github.com/gorilla/websocket" @@ -170,63 +168,37 @@ func (r *RobotFormatter) Format(entry *logrus.Entry) ([]byte, error) { return b.Bytes(), nil } -func (r *Robot) ExecSendMsg(mainType, subType string, msg proto.Message) { - - if msg != nil { - head := &pb.UserMessage{MainType: mainType, SubType: subType} - err := r.SendToClient(head, msg) - if err != nil { - zlog.Errorf("send to client err:%v", err) - } - r.messageRsp(mainType, subType) - } -} - -func (r *Robot) MessageRsp() { +func (r *Robot) MessageRsp(mainType, subType string) bool { var msg *pb.UserMessage = &pb.UserMessage{} _, data, err := r.ws.ReadMessage() if err != nil { - zlog.Fatalf("readMessage err:%v", err) + fmt.Printf("readMessage err:%v", err) + return false } if err = proto.Unmarshal(data, msg); err != nil { - zlog.Fatalf("unmarshal err:%v", err) + fmt.Printf("unmarshal err:%v", err) } + //fmt.Printf("接收消息=====msg.MainType = %s,msg.SubType = %s\n", msg.MainType, msg.SubType) if msg.MainType == "chat" && msg.SubType == "message" { resp := &pb.ChatMessagePush{} if !comm.ProtoUnmarshal(msg, resp) { - return + return false } - zlog.Fatalf("接收消息=====resp:%v", resp.Chat) - + return false + //fmt.Printf("接收消息=====resp:%v\n", resp.Chat) + } else if msg.MainType == mainType && msg.SubType == subType { + resp := &pb.UserLoginResp{} + if !comm.ProtoUnmarshal(msg, resp) { + return false + } + //fmt.Printf("接收消息=====loginData:%v,userExpand:%v\n", resp.Data, resp.Ex) + return true } - + return false } -func (r *Robot) messageRsp(mainType, subType string) { - var msg *pb.UserMessage = &pb.UserMessage{} - _, data, err := r.ws.ReadMessage() - if err != nil { - zlog.Fatalf("readMessage err:%v", err) - } - - if err = proto.Unmarshal(data, msg); err != nil { - zlog.Fatalf("unmarshal err:%v", err) - } - - if msg.MainType == mainType && - msg.SubType == subType { - rsp := &pb.UserLoginResp{} - if !comm.ProtoUnmarshal(msg, rsp) { - return - } - if msg.MainType == "user" && msg.SubType == "login" { - r.loginCallback(rsp) - } - } - -} func (r *Robot) CloseHandler() { r.ws.Close() diff --git a/stress/server/golink/websocket_link.go b/stress/server/golink/websocket_link.go index caa73b569..874e2ec88 100644 --- a/stress/server/golink/websocket_link.go +++ b/stress/server/golink/websocket_link.go @@ -80,19 +80,13 @@ func webSocketRequest(chanID uint64, ch chan<- *model.RequestResults, i uint64, Sid: "dfmxf", } r.SendToClient(head, req) - r.MessageRsp() - // err := ws.Write([]byte(`{"seq":"` + seq + `","cmd":"ping","data":{}}`)) - // if err != nil { - // errCode = model.RequestErr // 请求错误 - // } else { - // msg, err = ws.Read() - // if err != nil { - // errCode = model.ParseError - // fmt.Println("读取数据 失败~") - // } else { - // errCode, isSucceed = request.GetVerifyWebSocket()(request, seq, msg) - // } - // } + for { + if r.MessageRsp("user", "login") { + isSucceed = true + break + } + } + requestTime := uint64(helper.DiffNano(startTime)) requestResults := &model.RequestResults{ Time: requestTime, diff --git a/stress/stress.go b/stress/stress.go index 6c764b12e..54e6017f4 100644 --- a/stress/stress.go +++ b/stress/stress.go @@ -72,8 +72,8 @@ func main() { //go run .\main.go -c 10 -n 10 -u ws://10.0.5.101:7891/gateway concurrency = 10 totalNumber = 10 - debugStr = "true" - requestURL = "ws://10.0.5.194:7891/gateway" + debugStr = "false" + requestURL = "ws://10.0.0.9:7891/gateway" if concurrency == 0 || totalNumber == 0 || (requestURL == "" && path == "") { fmt.Printf("示例: go run main.go -c 1 -n 1 -u https://www.baidu.com/ \n") fmt.Printf("压测地址或curl路径必填 \n")