This commit is contained in:
wh_zcy 2022-11-25 23:31:33 +08:00
commit 713c2e3415
6 changed files with 72 additions and 64 deletions

View File

@ -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)
}
}
}

View File

@ -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 {

View File

@ -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
}
}
}

View File

@ -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()

View File

@ -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,

View File

@ -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")