Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
15a5e3063f
@ -2,16 +2,15 @@ package robot
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"crypto/rand"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
"io"
|
"io"
|
||||||
"math/big"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"time"
|
||||||
"go_dreamfactory/pb"
|
|
||||||
|
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@ -203,6 +202,13 @@ func (r *Robot) MessageRsp(mainType, subType string) (bool, int64) {
|
|||||||
return false, byteLen
|
return false, byteLen
|
||||||
}
|
}
|
||||||
//fmt.Printf("接收消息=====loginData:%v,userExpand:%v\n", resp.Data, resp.Ex)
|
//fmt.Printf("接收消息=====loginData:%v,userExpand:%v\n", resp.Data, resp.Ex)
|
||||||
|
return true, byteLen
|
||||||
|
} else if msg.MainType == "goutmet" && msg.SubType == "getranduser" {
|
||||||
|
resp := &pb.GourmetGetRandUserResp{}
|
||||||
|
if !comm.ProtoUnmarshal(msg, resp) {
|
||||||
|
return false, byteLen
|
||||||
|
}
|
||||||
|
|
||||||
return true, byteLen
|
return true, byteLen
|
||||||
}
|
}
|
||||||
return false, byteLen
|
return false, byteLen
|
||||||
@ -235,13 +241,38 @@ func (r *Robot) Login() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r Robot) GetRandUser() bool {
|
||||||
|
mainType := "goutmet"
|
||||||
|
subType := "getlist"
|
||||||
|
msg := &pb.UserMessage{MainType: mainType, SubType: subType}
|
||||||
|
|
||||||
|
rsp := &pb.GourmetGetRandUserReq{
|
||||||
|
People: 3,
|
||||||
|
}
|
||||||
|
msg.Sec = r.BuildSecStr()
|
||||||
|
if comm.ProtoMarshal(rsp, msg) {
|
||||||
|
data, _ := proto.Marshal(msg)
|
||||||
|
err := r.ws.WriteMessage(websocket.BinaryMessage, data)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("WriteMessage err:%v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
if b, _ := r.MessageRsp(mainType, subType); b {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
func (r *Robot) Create() bool {
|
func (r *Robot) Create() bool {
|
||||||
mainType := "user"
|
mainType := "user"
|
||||||
subType := "create"
|
subType := "create"
|
||||||
msg := &pb.UserMessage{MainType: mainType, SubType: subType}
|
msg := &pb.UserMessage{MainType: mainType, SubType: subType}
|
||||||
n2, _ := rand.Int(rand.Reader, big.NewInt(1000000))
|
rand.Seed(time.Now().UnixNano())
|
||||||
|
n2 := rand.Int63n(9000000)
|
||||||
|
|
||||||
name := strconv.Itoa(int(n2.Int64() + 100000))
|
name := strconv.Itoa(int(n2) + 100000)
|
||||||
rsp := &pb.UserCreateReq{
|
rsp := &pb.UserCreateReq{
|
||||||
NickName: name,
|
NickName: name,
|
||||||
Figure: 100,
|
Figure: 100,
|
||||||
@ -256,10 +287,70 @@ func (r *Robot) Create() bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for {
|
for i := 0; i < 100; i++ { // 防止丢包
|
||||||
if b, _ := r.MessageRsp(mainType, subType); b {
|
if b, _ := r.MessageRsp(mainType, subType); b {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取美食家信息列表数据
|
||||||
|
func (r Robot) GetGourmetList() int64 {
|
||||||
|
var byteLen int64
|
||||||
|
mainType := "goutmet"
|
||||||
|
subType := "getranduser"
|
||||||
|
msg := &pb.UserMessage{MainType: mainType, SubType: subType}
|
||||||
|
|
||||||
|
rsp := &pb.GourmetGetRandUserReq{
|
||||||
|
People: 3,
|
||||||
|
}
|
||||||
|
msg.Sec = r.BuildSecStr()
|
||||||
|
if comm.ProtoMarshal(rsp, msg) {
|
||||||
|
data, _ := proto.Marshal(msg)
|
||||||
|
err := r.ws.WriteMessage(websocket.BinaryMessage, data)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("WriteMessage err:%v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
var msg *pb.UserMessage = &pb.UserMessage{}
|
||||||
|
_, data, err := r.ws.ReadMessage()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("readMessage err:%v", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
byteLen += int64(len(data))
|
||||||
|
if err = proto.Unmarshal(data, msg); err != nil {
|
||||||
|
fmt.Printf("unmarshal err:%v", err)
|
||||||
|
}
|
||||||
|
if msg.MainType == "goutmet" && msg.SubType == "getlist" {
|
||||||
|
resp := &pb.GourmetGetListResp{}
|
||||||
|
if !comm.ProtoUnmarshal(msg, resp) { //反序列化失败
|
||||||
|
break
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return byteLen
|
||||||
|
}
|
||||||
|
|
||||||
|
// addItem
|
||||||
|
func (r Robot) AddGrormetItem() {
|
||||||
|
mainType := "gm"
|
||||||
|
subType := "cmd"
|
||||||
|
msg := &pb.UserMessage{MainType: mainType, SubType: subType}
|
||||||
|
|
||||||
|
rsp := &pb.GMCmdReq{
|
||||||
|
Cmod: "bingo:item,50001,100",
|
||||||
|
}
|
||||||
|
msg.Sec = r.BuildSecStr()
|
||||||
|
if comm.ProtoMarshal(rsp, msg) {
|
||||||
|
data, _ := proto.Marshal(msg)
|
||||||
|
err := r.ws.WriteMessage(websocket.BinaryMessage, data)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("WriteMessage err:%v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,6 @@ end:
|
|||||||
func webSocketRequest(chanID uint64, ch chan<- *model.RequestResults, i uint64, request *model.Request,
|
func webSocketRequest(chanID uint64, ch chan<- *model.RequestResults, i uint64, request *model.Request,
|
||||||
r *robot.Robot) {
|
r *robot.Robot) {
|
||||||
var (
|
var (
|
||||||
startTime = time.Now()
|
|
||||||
isSucceed = false
|
isSucceed = false
|
||||||
errCode = model.HTTPOk
|
errCode = model.HTTPOk
|
||||||
byteLen int64 // 协议传输字节数
|
byteLen int64 // 协议传输字节数
|
||||||
@ -80,16 +79,20 @@ func webSocketRequest(chanID uint64, ch chan<- *model.RequestResults, i uint64,
|
|||||||
head := &pb.UserMessage{MainType: "user", SubType: "login"}
|
head := &pb.UserMessage{MainType: "user", SubType: "login"}
|
||||||
|
|
||||||
r.SendToClient(head, &pb.UserLoginReq{})
|
r.SendToClient(head, &pb.UserLoginReq{})
|
||||||
for {
|
// 美食馆增加道具
|
||||||
|
r.AddGrormetItem()
|
||||||
if b, len := r.MessageRsp("user", "login"); b {
|
// for {
|
||||||
byteLen += len
|
// if b, len := r.MessageRsp("user", "login"); b {
|
||||||
isSucceed = true
|
// byteLen += len
|
||||||
//errCode, isSucceed = request.GetVerifyWebSocket()(request, "webSocket.pb", r.GetMessagedata())
|
// isSucceed = true
|
||||||
break
|
// //errCode, isSucceed = request.GetVerifyWebSocket()(request, "webSocket.pb", r.GetMessagedata())
|
||||||
}
|
// break
|
||||||
}
|
// }
|
||||||
r.Create()
|
// }
|
||||||
|
// r.Create()
|
||||||
|
startTime := time.Now()
|
||||||
|
// r.GetRandUser() // 获取随机在线玩家数据
|
||||||
|
byteLen = r.GetGourmetList()
|
||||||
requestTime := uint64(helper.DiffNano(startTime))
|
requestTime := uint64(helper.DiffNano(startTime))
|
||||||
requestResults := &model.RequestResults{
|
requestResults := &model.RequestResults{
|
||||||
ID: "",
|
ID: "",
|
||||||
|
Loading…
Reference in New Issue
Block a user