From a119a37aa93f6d4b73e863635ab2fce8a01282e5 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Fri, 25 Nov 2022 23:02:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stress/robot/robot.go | 60 +++++++------------------- stress/server/golink/websocket_link.go | 20 +++------ stress/stress.go | 4 +- 3 files changed, 25 insertions(+), 59 deletions(-) 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")